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

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

最佳答案

好吧,这取决于您的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>

关于c# - C#XML序列化中XmlElement和XmlElementAttribute之间的区别,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27657910/

10-09 16:34