public static void _Main()
        {
            //Creamos el originador
            COriginador auto = new COriginador("March", 2019, 250000);

            auto.Mostrar();

            //Creamos el careTaker
            CCareTaker ct = new CCareTaker();

            //Guardamos el estado
            ct.Memento = auto.CreaMemento();//se guarda el objeto con los datos de arriba new COriginador("March", 2019, 250000);

            //metimos el ejemplo de modificar para ejemplo en la aplicacion, pero supongamos q por alguna razon el equipo dejo
            //de funcionar guardando o modificando informacion hasta este punto.
            //Modificamos el objeto
            auto.Nombre = "Vocho";
            auto.Modelo = 1970;
            auto.Costo  = 35000;
            auto.Mostrar();

            //aqui supopngamos q volvimos a la aplicacion y queremos recuperar la informacion al estado anterior
            //a q sucediera el problema

            //Restauramos el estado anterior
            auto.Restaurar(ct.Memento);
            auto.Mostrar();

            Console.ReadLine();
        }
Exemplo n.º 2
0
        //internal es para aquellos archivos q se encuentran en el mismo assembly podran ver el metodo
        internal void Salvar(COriginador objeto)
        {
            BinaryFormatter formateador = new BinaryFormatter();
            Stream          MiStream    = new FileStream("Autos.aut", FileMode.Create, FileAccess.Write, FileShare.None); //Creamos el archivo "Autos.aut"

            formateador.Serialize(MiStream, objeto);                                                                      //Serializamos el objeto
            MiStream.Close();

            Console.WriteLine("Se ha salvado");
        }
Exemplo n.º 3
0
        internal COriginador Restaurar()
        {
            BinaryFormatter formateador = new BinaryFormatter();
            Stream          miStream    = new FileStream("Autos.aut", FileMode.Open, FileAccess.Read, FileShare.None); //Abrimos el archivo "Autos.aut"
            COriginador     temp        = (COriginador)formateador.Deserialize(miStream);                              //Deserializamos el stream y lo casteamos

            miStream.Close();

            Console.WriteLine("Se ha restaurado");
            return(temp);
        }