private static void ObjectSerializationApproach() { try { Console.WriteLine("Object Serialization Approach"); SpeedometerObjectSerialization speedo = new SpeedometerObjectSerialization(); speedo.CurrentSpeed = 50; speedo.CurrentSpeed = 100; Console.WriteLine("Current speed: " + speedo.CurrentSpeed); Console.WriteLine("Previous speed: " + speedo.PreviousSpeed); // Save the state of 'speedo' SpeedometerMementoObjectSerialization memento = new SpeedometerMementoObjectSerialization(speedo); // Change the state of 'speed' speedo.CurrentSpeed = 80; Console.WriteLine("After setting to 80..."); Console.WriteLine("Current speed: " + speedo.CurrentSpeed); Console.WriteLine("Previous speed: " + speedo.PreviousSpeed); // Restore the state of 'speedo' Console.WriteLine("Now restoring state..."); speedo = memento.RestoreState(); Console.WriteLine("Current speed: " + speedo.CurrentSpeed); Console.WriteLine("Previous speed: " + speedo.PreviousSpeed); } catch (Exception ex) { Console.WriteLine(ex.ToString()); Console.Write(ex.StackTrace); } }
public SpeedometerMementoObjectSerialization(SpeedometerObjectSerialization speedometer) { // Serialize... Stream stream = File.Open("speedometer.ser", FileMode.Create); BinaryFormatter formatter = new BinaryFormatter(); formatter.Serialize(stream, speedometer); stream.Close(); }