Example #1
0
        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();
        }