Пример #1
0
        public void TestSerialization()
        {
            // Declare variables
            MemoryStream stream = null;

            // Create object
            var obj = new SerializableObject();

            // Set some values
            obj.StringValue = "SerializationHelperTest";
            obj.IntValue = 1;
            obj.BoolValue = false;
            obj.ObjectValue = DateTime.MinValue;

            // Create formatter
#if NET
            var serializer = new BinaryFormatter();
#else
            var serializer = SerializationHelper.GetDataContractSerializer(typeof (SerializableObject), obj.GetType(), "test", obj, false);
#endif

            #region Serialize to disk
            // Create stream
            using (stream = new MemoryStream())
            {
                // Serialize
#if NET
                serializer.Serialize(stream, obj);
#else
                serializer.WriteObject(stream, obj);
#endif
                #endregion

                #region Deserialize from disk
                // Reset stream position
                stream.Position = 0L;

                // Serialize
#if NET
                obj = (SerializableObject)serializer.Deserialize(stream);
#else
                obj = (SerializableObject) serializer.ReadObject(stream);
#endif
            }
            #endregion

            // Test values
            Assert.AreEqual("SerializationHelperTest", obj.StringValue);
            Assert.AreEqual(1, obj.IntValue, 1);
            Assert.AreEqual(false, obj.BoolValue);
            Assert.AreEqual(DateTime.MinValue, obj.ObjectValue);
        }