예제 #1
0
    static void Main(string[] args)
    {
        Data store = new Data();

        store.Number = 9;
        {
            // Write and read based on number
            NumberMemento   mem1 = new NumberMemento(store);
            BinaryFormatter bf1  = new BinaryFormatter();
            FileStream      fs   = new FileStream("numstore.dat", FileMode.Create);
            bf1.Serialize(fs, mem1);
            fs.Close();
            // clear data and deserialize
            store.Number = 0;
            fs           = new FileStream("numstore.dat", FileMode.Open);
            mem1         = bf1.Deserialize(fs) as NumberMemento;
            fs.Close();
            store.FromNumberStore(mem1);
            // check store.Number == 9
        }
        {
            // Write and read based on square
            SquareMemento   mem2 = new SquareMemento(store);
            BinaryFormatter bf2  = new BinaryFormatter();
            FileStream      fs   = new FileStream("sqrstore.dat", FileMode.Create);
            bf2.Serialize(fs, mem2);
            fs.Close();
            // clear data and deserialize
            store.Number = 0;
            fs           = new FileStream("sqrstore.dat", FileMode.Open);
            mem2         = bf2.Deserialize(fs) as SquareMemento;
            fs.Close();
            store.FromSqureStore(mem2);
            // check store.Number == 9
        }
    }
예제 #2
0
 public void FromNumberStore(NumberMemento mem)
 {
     this.Number = mem.Number;
 }