Esempio n. 1
0
        public void TestClassList()
        {
            var js = new JsonSerializer();
            js.Options.TagMode = TagMode.Names;
            js.JsonOptions.SaveRootClass = true;
            var jd = new JsonDeserializer();
            jd.Options.TagMode = TagMode.Names;

            var v = new SampleClassList {
                E = new List<SampleBase> {
                    new SampleDerivedA(),
                    new SampleDerivedB { FB = 9 },
                    new SampleDerivedB { FB = 8 },
                }
            };

            var result = js.ToString(v);
            var w = (SampleClassList)jd.FromString(result);

            Assert.AreEqual(3, w.E.Count);
            Assert.IsInstanceOfType(w.E[0], typeof(SampleDerivedA));
            Assert.IsInstanceOfType(w.E[1], typeof(SampleDerivedB));
            Assert.AreEqual(9, ((SampleDerivedB)w.E[1]).FB);
            Assert.IsInstanceOfType(w.E[2], typeof(SampleDerivedB));
            Assert.AreEqual(8, ((SampleDerivedB)w.E[2]).FB);

            w = (SampleClassList)SampleClassList_JsonDeserializer.Instance.FromString(result);
            Assert.AreEqual(3, w.E.Count);
            Assert.IsInstanceOfType(w.E[0], typeof(SampleDerivedA));
            Assert.IsInstanceOfType(w.E[1], typeof(SampleDerivedB));
            Assert.AreEqual(9, ((SampleDerivedB)w.E[1]).FB);
            Assert.IsInstanceOfType(w.E[2], typeof(SampleDerivedB));
            Assert.AreEqual(8, ((SampleDerivedB)w.E[2]).FB);
        }
Esempio n. 2
0
        public void TestClassList()
        {
            var bs = new BinarySerializer();

            var v = new SampleClassList {
                E = new List<SampleBase> {
                    new SampleDerivedA(),
                    new SampleDerivedB { FB = 9 },
                    new SampleDerivedB { FB = 8 },
                }
            };

            var result = bs.ToBytes(v);

            CheckDeserializers(bd => {
                var w = (SampleClassList)bd.FromBytes(result);
                Assert.AreEqual(3, w.E.Count);
                Assert.IsInstanceOfType(w.E[0], typeof(SampleDerivedA));
                Assert.IsInstanceOfType(w.E[1], typeof(SampleDerivedB));
                Assert.AreEqual(9, ((SampleDerivedB)w.E[1]).FB);
                Assert.IsInstanceOfType(w.E[2], typeof(SampleDerivedB));
                Assert.AreEqual(8, ((SampleDerivedB)w.E[2]).FB);
            });
        }