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); }
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); }); }