コード例 #1
0
        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);
        }
コード例 #2
0
        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);
        }