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(); } } }