反序列化List <object> C#

时间:2017-04-29 14:57:41

标签: c# deserialization

我想将此方法中收到的List<Object>分配给新的List<MyClass>

    public List<Object> Deserialize(string path)
    {
        IFormatter seri = new BinaryFormatter();

        Stream str = new FileStream(path, FileMode.Open, FileAccess.Read);
        List<Object> Lista = (List<Object>)(seri.Deserialize(str));
        str.Close();
        return Lista;
    }

我的目的是使用不同的类调用此方法,然后将其强制转换回上一个类型,但是在尝试将其强制转换后出现错误。

2 个答案:

答案 0 :(得分:2)

您可以尝试使用Generics

public List<T> Deserialize<T>(string path)
{
    IFormatter seri = new BinaryFormatter();

    Stream str = new FileStream(path, FileMode.Open, FileAccess.Read);
    List<T> Lista = (List<T>)(seri.Deserialize(str));
    str.Close();
    return Lista;
}

答案 1 :(得分:0)

public List<T> Deserialize<T>(string path)
{
   return JsonConvert.DeserializeObject<List<T>>(path);
}