.net XmlSerializer记录与元素

时间:2016-06-17 03:48:23

标签: .net serialization xml-serialization deserialization xmlserializer

我正试图影响XmlSerializer来创建这个简单的输出:

<ListOfStuff>
    <PropertyList>
         <Datum qualifier="areaType">square</Datum>
         <Datum qualifier="color">red</Datum>
    </PropertyList>
</ListOfStuff>    

我的物品装饰如下:

public class ListOfStuff
{     
    [XmlElement]
    public PropertyList PropertyList { get; set; }        
}

public class PropertyList
{
    [XmlElement]
    public List<Datum> Datum { get; set; }
}

public class Datum
{
    [XmlAttribute]
    public string qualifier { get; set; }
}

但序列化器输出似乎是将我的Datum元素解释为记录而不是具有数据的元素(缺少值“square”和“red”)。

<ListOfStuff>
    <PropertyList>
                 <Datum qualifier="areaType" />
                 <Datum qualifier="color" />
   </PropertyList>
</ListOfStuff>

是否需要应用其他属性以提高序列化程序的清晰度?

1 个答案:

答案 0 :(得分:0)

您可以使用[XmlText]属性将<Datum>元素的值绑定到Datum类中的字符串值属性:

public class Datum
{
    [XmlAttribute]
    public string qualifier { get; set; }

    [XmlText]
    public string Value { get; set; }
}

示例fiddle