2012-03-26 9 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型のそれがリストに変更された場合somoeoneは可能な限り、そのコードを手伝ってくれますか?

答えて

6

このための素晴らしいソリューション、この場合はList<T>などの具体的なタイプを使用しての唯一の回避策はありません - あなたは既存のプロパティをList<T>に変更するか、タイプList<T>(およびXML - 既存のプロパティを無視する)のシリアル化にのみ使用される追加のプロパティを追加することができます。

+0

私は、入力オブジェクトに、それはその場で変更にそれをToListメソッドが存在する場合のIListをチェックすることはできますか? –

+0

これは本当に可能ではありません。クラス定義を変更する必要があります – BrokenGlass

関連する問題