using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
// Añadir librerías
using System.IO;
using System.Runtime.Serialization;
using System.Runtime.Serialization.Formatters.Binary;
namespace GuardaObj
{
[Serializable]
public class Persist02
{
int numero;
public void SetNumero(int n)
{
numero = n;
}
public int GetNumero()
{
return numero;
}
public static void Guardar(string nombre, Persist02 objeto)
{
IFormatter formatter = new BinaryFormatter();
Stream stream = new FileStream(nombre, FileMode.Create,
FileAccess.Write, FileShare.None);
formatter.Serialize(stream, objeto);
stream.Close();
}
public static Persist02 Cargar(string nombre) {
Persist02 objeto;
IFormatter formatter = new BinaryFormatter();
Stream stream = new FileStream(nombre, FileMode.Open,
FileAccess.Read, FileShare.Read);
objeto = (Persist02)formatter.Deserialize(stream);
stream.Close();
return objeto;
}
static void Main(string[] args)
{
// Creo el objeto ejemplo y lo guardo en el fichero ejemplo.dat
Persist02 ejemplo = new Persist02();
ejemplo.SetNumero(5);
Console.WriteLine("Valor: {0}", ejemplo.GetNumero());
Guardar("ejemplo.dat", ejemplo);
// Creo el objeto ejemplo2
Persist02 ejemplo2 = new Persist02();
Console.WriteLine("Valor 2: {0}", ejemplo2.GetNumero());
// Leo de ejemplo.dat el objeto antes guardado "ejemplo" y
// lo almaceno en ejemplo2
ejemplo2 = Cargar("ejemplo.dat");
Console.WriteLine("Y ahora: {0}", ejemplo2.GetNumero());
Console.ReadKey();
}
}
}