private static object Deserialize(Serialization.ISerializerFactory factory, Type t, byte[] data) { using (var s = new MemoryStream(data)) { using (var deserializer = factory.GetDeserializer(s)) return(deserializer.Deserialize(t)); } }
private static byte[] Serialize(Serialization.ISerializerFactory factory, object value) { using (var s = new MemoryStream()) { using (var serializer = factory.GetSerializer(s)) serializer.Serialize(value); return(s.ToArray()); } }
private static void WriteSerializedData(Serialization.ISerializerFactory factory) { WriteSerializedData(factory, new PolyLine(new[] { new Point(1, 2), new Point(3, 4) }, new[] { 1.5, 1.41421356 })); WriteSerializedData(factory, new Pair <Point, string>(new Point(10, 20), "abcd")); WriteSerializedData(factory, new Point(10, 20)); WriteSerializedData(factory, new[] { 1, 2, 3, 4, 5 }); WriteSerializedData(factory, new Unit[] { new Fighter(1, "Duran", 3.14), new Mage(2, "Angela", "Earthquake"), new Thief(3, "Hawk", 12, 15), }); }
private static void WriteSerializedData(Serialization.ISerializerFactory factory, object value) { var data = Serialize(factory, value); Console.WriteLine("length: " + data.Length); var serialized = Encoding.UTF8.GetString(data); Console.WriteLine(serialized); var deserialized = Deserialize(factory, value.GetType(), data); var e = deserialized as System.Collections.IEnumerable; if (e == null) { Console.WriteLine(deserialized); } else { Console.WriteLine(string.Join(", ", e.Cast <object>().Select(x => x.ToString()))); } }