2016-05-05 5 views
0

私はこのコードを使用してオブジェクトのリスト(一覧)をシリアライズすることができた:DataContractを使用してカスタムオブジェクトに関する情報でXMLを逆シリアル化する方法

public static string Serialize(object obj) 
{ 
    using (MemoryStream memoryStream = new MemoryStream()) 
    using (StreamReader reader = new StreamReader(memoryStream)) 
    { 
     DataContractSerializer serializer = new DataContractSerializer(obj.GetType()); 
     serializer.WriteObject(memoryStream, obj); 
     memoryStream.Position = 0; 
     return reader.ReadToEnd(); 
    } 
} 

しかし、私はこのコードを使用してデシリアライズすることはできませんよ。

public static object Deserialize(string xml, Type toType) 
{ 
    using (Stream stream = new MemoryStream()) 
    { 
     byte[] data = System.Text.Encoding.UTF8.GetBytes(xml); 
     stream.Write(data, 0, data.Length); 
     stream.Position = 0; 
     DataContractSerializer deserializer = new DataContractSerializer(toType); 
     return deserializer.ReadObject(stream); 
    } 
} 

私はできませんよ問題を理解する 私はそれを呼び出すことで、最後の方法を使用しています:

逆シリアル化(SerializedObject、リスト)が、私はList<FilesToProcess> is a type, which is not valid in the given context

を言って、エラーを取得しています誰が助けてもらえますか?私はこれで私の頭の上に少しです。

答えて

0

Sooo、私は自分自身の質問に答えることに疑念の余地があります。

問題は、私がオブジェクトに割り当てられ、その後

を使用して List<FilesToProcess>にキャストしている必要があるとき、私は、listOfFilesと呼ばれる一般的なリストに

public static object Deserialize(string xml, Type toType)

の出力を割り当てるしようとしていたということでした

List<FilesToProcess listOfFiles = (List<FilesToProcess)listOfFilesObject; 
関連する問題