2012-03-26 22 views
0

我使用下面的函數試圖序列化對象到XML ..對象序列化爲XML:IList的<CustomObject>屬性導致異常

public static string SerializeObject<T>(T obj) 
     { 
      try 
      { 
       string xmlString = null; 
       MemoryStream memoryStream = new MemoryStream(); 
       XmlSerializer xs = new XmlSerializer(typeof(T)); 
       XmlTextWriter xmlTextWriter = new XmlTextWriter(memoryStream, Encoding.UTF8); 
       xs.Serialize(xmlTextWriter, obj); 
       memoryStream = (MemoryStream)xmlTextWriter.BaseStream; 
       xmlString = UTF8ByteArrayToString(memoryStream.ToArray()); return xmlString; 
      } 
      catch (Exception ex) 
      { 
       return string.Empty; 
      } 
     } 

當試圖序列有一個IList屬性的對象在它,我得到以下例外..

Cannot serialize member 'ObjectModel.Order.LineItems' of type 'System.Collections.Generic.IList 

有人可以幫我改變我的功能,以適應這種情況?

有什麼我可以做這個現有的代碼來查看輸入對象。如果它的Ilist類型將其更改爲List?可以somoeone幫助我的代碼,如果它的所有可能?

回答

6

有對此沒有很好的解決方案,只有在這種情況下,使用一個具體類型像List<T>的解決辦法 - 你可以將現有屬性更改爲List<T>,也可以添加僅用於List<T>類型(以及XML-忽略現有屬性)的序列化的附加屬性。

+0

我可以在輸入對象檢查一個IList,如果它存在,它的變化對ToList飛? – 2012-03-26 21:07:54

+0

不,這不可能,你必須改變你的類定義 – BrokenGlass 2012-03-26 21:09:11

相關問題