C#反序列化问题

时间:2011-11-12 12:54:17

标签: c# serialization

我有一个从另一个软件生成的二进制文件。它通过序列化对象生成它。但是当我试图反序列化它时,我只得到一个头对象。我不确定他们如何将对象存储到文件中,但我确信有多个对象。所以我的问题是 - .net中是否有任何选项可以从单个文件中获取所有序列化对象?

由于

我正在使用此代码:

        Stream sr = new FileStream("C:\\abc.bin", FileMode.Open);
        BinaryFormatter formatter = new BinaryFormatter();
        object o = formatter.Deserialize(sr);

1 个答案:

答案 0 :(得分:1)

为了能够反序列化它,您需要引用包含已序列化的类的程序集。否则.NET将如何知道如何构建对象?因此,实际上,这意味着您需要知道进入的内容,以便能够再次获取它。

如果他们只使用.NET类型,您仍然需要引用正确的.NET程序集。当然,他们可能只使用System中的类型,但很可能他们会从您需要引用的库中序列化一些自定义对象。