2011-05-02 65 views
-1

假設我有xml數據存儲在字符串變量中。所以當我試圖反序列化XML到我的課,然後我得到屬性名稱的錯誤。xml反序列化相關的問題發生

[XmlAttribute("Name")] 
    public string CompanyName 
    { 
    get 
    { 
     return __CompanyName; 
    } 
    set 
    { 
     if (value != null) 
     __CompanyName = value; 
     else 
     __CompanyName = ""; 
    } 
    } 

其實我得到的錯誤,因爲在我的xml中有名稱標籤,但在我的代碼屬性名稱是CompanyName。這就是爲什麼我得到錯誤。是否有任何方法來映射我的屬性中的屬性,因爲名稱將與CompanyName進行映射,並且在反序列化期間不會出現問題。請幫忙。 [XmlAttribute(「Name」)] ...它應該是xmlelement而不是XmlAttribute。需要幫忙。

回答

4

更改名稱是好的;你只需要正確的屬性。你不顯示XML,但它看起來像你只需要

[XmlElement("Name")] 
public string CompanyName {...etc...} 

如果類型是你的控制範圍之外,可以使用XmlAttributeOverrides再教育XmlSerializer - 但如果你做,你必須緩存並重新使用序列化器實例(否則您將泄漏內存)。

+0

請告訴我xml數據中的姓名將如何自動存儲在公司名稱中。當我將序列化它時,我需要做的是映射。 – Mou 2011-05-02 18:03:56

+0

@ user728750'[XmlElement(「Name」)]'是告訴它將'CompanyName'屬性映射到' blah'元素。沒有其他要求。如果那不是做這個工作,請顯示例子xml。 – 2011-05-02 18:19:33