XML多态类的对象保存
使用
XmlPerson person123 = new XmlStudent { Name = "李四", Age = 18, StuNumber = "S12345" }; XmlPerson person1234 = new XmlTeacher { Name = "李四1", Age = 22, TeachNumber = "S78910" }; TestDuoTai testDuoTai = new TestDuoTai(); testDuoTai.xmlPeople = new List<XmlPerson>(); testDuoTai.xmlPeople.Add(person123); testDuoTai.xmlPeople.Add(person1234); string xmlString = XmlSerializerHelper.SerializeToXml(testDuoTai); TestDuoTai personFromXml = XmlSerializerHelper.DeserializeFromXml<TestDuoTai>(xmlString);
xml字符串
<?xml version="1.0" encoding="utf-16"?> <TestDuoTai xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <xmlPeople> <XmlPerson xsi:type="XmlStudent"> <Name>李四</Name> <Age>18</Age> <StuNumber>S12345</StuNumber> </XmlPerson> <XmlPerson xsi:type="XmlTeacher"> <Name>李四1</Name> <Age>22</Age> <TeachNumber>S78910</TeachNumber> </XmlPerson> </xmlPeople> </TestDuoTai>
实体类
//这里重要
[XmlInclude(typeof(XmlStudent))] [XmlInclude(typeof(XmlTeacher))] [Serializable] public class XmlPerson { public string Name { get; set; } public int Age { get; set; } } [Serializable] public class XmlStudent : XmlPerson { public string StuNumber { get; set; } } [Serializable] public class XmlTeacher : XmlPerson { public string TeachNumber { get; set; } } [Serializable] public class TestDuoTai { public List<XmlPerson> xmlPeople { get; set; } }

浙公网安备 33010602011771号