c#xml序列化中的XmlElement和XmlElementAttribute有什么区别。我在对象的xml序列化时遇到问题。
实际上,我有2个同名的字段。 1在Base类中,其他在子类中,我需要为在xml doc中显示的元素设置不同的元素名称。
答案 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>