public void PolymorphicSerializer() { // verify that the default serializer works for polymorphic types var c = new TypeWithPolymorphicField(); c.Name = "foo"; c.Enumerable = new List <int>(); BufferWriter bw = new BufferWriter(100); Serializer.Serialize(bw, c, new SerializationContext()); TypeWithPolymorphicField c2 = null; var br = new BufferReader(bw.Buffer); Serializer.Deserialize(br, ref c2, new SerializationContext()); Assert.AreEqual(c.Name, c2.Name); }
public void CustomSerializer() { var c = new TypeWithPolymorphicField(); c.Name = "foo"; c.Enumerable = new List <int>(); BufferWriter bw = new BufferWriter(100); var ks = new KnownSerializers(); ks.Register <TypeWithPolymorphicField, TestCustomSerializer>("some alternate name"); // include an alternate name just to exercise that code path var sc = new SerializationContext(ks); Serializer.Serialize(bw, c, sc); sc.Reset(); TypeWithPolymorphicField c2 = null; var br = new BufferReader(bw.Buffer); Serializer.Deserialize(br, ref c2, sc); Assert.AreEqual(c.Name, c2.Name); }