使用body和属性将标记反序列化为对象

时间:2013-08-23 06:29:45

标签: c# .net xml-serialization xml-deserialization

如何将XML反序列化为对象:

<Root>
   <Element Attr="AttrValue1">BodyValue1</Element>
   <Element Attr="AttrValue2">BodyValue2</Element>
   <Element Attr="AttrValue3">BodyValue3</Element>
</Root>

我需要具有适当属性的确切对象结构。

我试过了:

[XmlRoot("Root")]
public class EventFieldsRoot
{
    [XmlElement("Element")]
    public List<Element> Elements{ get; set; }
}

public class Element
{
    [XmlAttribute]
    public string Attr { get; set; }

    [XmlElement("")]
    public string Body { get; set; }
}

该属性反序列化良好,但正文为空。我怎样才能对身体进行反序列化?

1 个答案:

答案 0 :(得分:1)

简单地

public class Element
{
    [XmlAttribute]
    public string Attr { get; set; }

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

XmlText属性完美无缺。