我能够使用以下代码序列化对象列表(List):
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),但我收到错误List<FilesToProcess> is a type, which is not valid in the given context
有人可以帮忙吗?我对此有点过头了。
答案 0 :(得分:0)
Sooo,我有幸回答我自己的问题。
问题在于我试图分配
的输出 public static object Deserialize(string xml, Type toType)
到List通用名为listOfFiles,当我应该分配给一个对象然后使用
转换为List<FilesToProcess>
List<FilesToProcess listOfFiles = (List<FilesToProcess)listOfFilesObject;