c#xml序列化中XmlElement和XmlElementAttribute之间的区别

时间:2014-12-26 13:37:50

标签: c# xmlserializer

c#xml序列化中的XmlElement和XmlElementAttribute有什么区别。我在对象的xml序列化时遇到问题。

实际上,我有2个同名的字段。 1在Base类中,其他在子类中,我需要为在xml doc中显示的元素设置不同的元素名称。

1 个答案:

答案 0 :(得分:2)

嗯,这取决于您的XML文件结构。如果子元素是xml标记,则应添加XmlElement数据注释。如果类的属性绑定到与当前节点相关的属性,则添加属性数据注释。

[Serializable()]
public class Person
{
    [System.Xml.Serialization.XmlElement("Name")]
    public string Name{ get; set; }

    [System.Xml.Serialization.XmlElement("Phone")]
    public int Phone { get; set; }

    [System.Xml.Serialization.XmlElement("Address ")]
    public string Address { get; set; }
}

在这种情况下,你的xml结构应该是这样的:

  <person>
        <name>...</name>
        <phone>...</phone>
        <address>...</address>
  </person>

现在,如果属性表示子属性,则它将如下所示:

<person name='...' phone='...' address='...'></person>