小编Joa*_*sta的帖子

C# - 派生类的XML序列化

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

public class XMLFile
{
    [XmlArray("MasterFiles")]
    public List<MasterElement> 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;
}
Run Code Online (Sandbox Code Playgroud)

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

<MasterFiles>
    <MasterElement xsi:type="Supplier">
        <SupplierID>SUP-000001</SupplierID>
        <AccountID>Unknown</AccountID>
    </MasterElement>
    <MasterElement xsi:type="Customer">
        <CustomerID>CLI-000001</CustomerID>
        <AccountID>Unknown</AccountID>
        <CustomerTaxID>Unknown</CustomerTaxID>
    </MasterElement>
</MasterFiles>
Run Code Online (Sandbox Code Playgroud)

但我想要的是

<MasterFiles>
    <Supplier>
        <SupplierID>SUP-000001</SupplierID>
        <AccountID>Unknown</AccountID>
    </Supplier>
    <Customer>
        <CustomerID>CLI-000001</CustomerID>
        <AccountID>Unknown</AccountID>
        <CustomerTaxID>Unknown</CustomerTaxID> …
Run Code Online (Sandbox Code Playgroud)

c# xml xml-serialization xmlserializer

8
推荐指数
1
解决办法
4630
查看次数

标签 统计

c# ×1

xml ×1

xml-serialization ×1

xmlserializer ×1