Csharp/C#教程:C# – 派生类的XML序列化分享


C# – 派生类的XML序列化

我正在尝试序列化多个元素的列表(供应商,客户,产品等),所有元素都来自同一个类(MasterElement)

public class XMLFile { [XmlArray("MasterFiles")] public List MasterFiles; ... } [XmlInclude(typeof(Supplier))] [XmlInclude(typeof(Customer))] public abstract class MasterElement { public MasterElement() { } } [XmlType(TypeName = "Supplier")] public class Supplier: MasterElement { public string SupplierID; public string AccountID; } [XmlType(TypeName = "Customer")] public class Customer: MasterElement { public string CustomerID; public string AccountID; public string CustomerTaxID; } 

到目前为止,XML正在解析,但当前的输出是

   SUP-000001 Unknown   CLI-000001 Unknown Unknown   

但我想要的是

   SUP-000001 Unknown   CLI-000001 Unknown Unknown   

我在这做错了什么?

你可以使用XmlArrayItem解决这个问题:

 public class XMLFile { [XmlArray("MasterFiles")] [XmlArrayItem("Supplier", typeof(Supplier))] [XmlArrayItem("Customer", typeof(Customer))] public List MasterFiles; } 

从链接的MSDN:

XmlArrayItemAttribute支持多态 – 换句话说,它允许XmlSerializer将派生对象添加到数组中。

上述就是C#学习教程:C# – 派生类的XML序列化分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/1016914.html

(0)
上一篇 2021年12月31日
下一篇 2021年12月31日

精彩推荐