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

 

posted @ 2025-11-25 13:12  家煜宝宝  阅读(3)  评论(0)    收藏  举报