2014-12-26 66 views
2

c#xml序列化中XmlElement和XmlElementAttribute的區別是什麼?我遇到一個問題,而對象的XML序列化。c#xml序列化中XmlElement和XmlElementAttribute的區別

其實,我有兩個同名的字段。 1在基類和其他子類中,我需要爲那些在xml文檔中顯示的元素設置不同的名稱。

+1

請說明您的具體問題,否則幾乎不可能提供可幫助您解決問題的答案。 – dasblinkenlight

+0

你的問題是什麼? – Sybren

回答

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> 
+0

我已經試過但沒有工作。例外:反映類型時出現錯誤: 使用XmlElementAttribute或XmlAttributeAttribute指定一個新名稱。 –