【问题标题】:How to deserialize an XML with information about a custom object, using DataContract?如何使用 DataContract 反序列化包含自定义对象信息的 XML?
【发布时间】:2016-05-05 03:35:53
【问题描述】:

我能够使用此代码序列化对象列表 (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);
    }
}

我无法理解问题所在。 我通过调用它来使用最后一种方法:

Deserialize(SerializedObject, List),但我收到一条错误消息,提示 List<FilesToProcess> is a type, which is not valid in the given context

有人可以帮忙吗?我对此有点过头了。

【问题讨论】:

    标签: c# xml wcf serialization


    【解决方案1】:

    Sooo,我有幸回答我自己的问题。

    问题是我试图分配输出

    public static object Deserialize(string xml, Type toType)

    到一个名为 listOfFiles 的 List 泛型,当我应该分配给一个对象然后使用 List<FilesToProcess> 转换时

    List<FilesToProcess listOfFiles = (List<FilesToProcess)listOfFilesObject;
    

    【讨论】:

      猜你喜欢
      • 2022-08-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-09
      • 1970-01-01
      • 1970-01-01
      • 2012-06-23
      相关资源
      最近更新 更多