2014-12-22 66 views
1

我有這個XML片段,我試圖反序列化它。我已經嘗試過以下類反序列化,但我沒有得到地址行,我只能得到城市州和郵政編碼。 有人能指出我的錯誤嗎?我看不到我做錯了什麼。 XML和類就在下面。使用C#反序列化XML#

XML:

  <RemitTo> 
      <Address> 
       <AddressLine lineNumber="1">Blah blah</AddressLine> 
       <AddressLine lineNumber="2">bah bah bah</AddressLine> 
       <AddressLine lineNumber="3">bah3</AddressLine> 
       <City>Minneapolis</City> 
       <State>MN</State> 
       <PostalCode>55413</PostalCode> 
       <Country isoCountryCode="US">United States</Country> 
      </Address> 
     </RemitTo> 

類:

[XmlRoot("RemitTo")] 
    public partial class RemitTo 
    { 
     [XmlElementAttribute("Address")] 
     public List<Address> RemitToAddress { get; set; } 

    } 

    public partial class Address 
    { 


     [XmlArray("Address")] 
     [XmlArrayItem("AddressLine")] 
     public List<string> AddressLine { get; set; } 


     public string City { get; set; } 
     public string State { get; set; } 
     public string PostalCode { get; set; } 
     public string Country { get; set; } 
    } 

在代碼即時通訊做這個。

RemitTo i; 
XmlSerializer serializer = new XmlSerializer(typeof(RemitTo)); 
i = (RemitTo)serializer.Deserialize(addressReader); 

回答

3

它應該是這樣簡單

[XmlElement("AddressLine")] 
    public List<string> AddressLine { get; set; } 

XmlArray是不適用的,因爲我們已經在Address類中,並沒有在孩子身邊的物品沒有進一步的包裝元素。

Reference

+0

StuartLC我一定是花了4小時試圖figuered了這一點。感謝您花時間!上帝,我覺得自己像這樣一個愚蠢的A **。 – Miguel

+1

不僅值得歡迎 - 我花了很多時間讓自己嘗試將xml變成實體。當我真的陷入困境時,我傾向於使用XSL將xml預先投影到更接近我的實體圖的東西上。 – StuartLC