我有一个从另一个软件生成的二进制文件。它通过序列化对象生成它。但是当我试图反序列化它时,我只得到一个头对象。我不确定他们如何将对象存储到文件中,但我确信有多个对象。所以我的问题是 - .net中是否有任何选项可以从单个文件中获取所有序列化对象?
由于
我正在使用此代码:
Stream sr = new FileStream("C:\\abc.bin", FileMode.Open);
BinaryFormatter formatter = new BinaryFormatter();
object o = formatter.Deserialize(sr);
答案 0 :(得分:1)
为了能够反序列化它,您需要引用包含已序列化的类的程序集。否则.NET将如何知道如何构建对象?因此,实际上,这意味着您需要知道进入的内容,以便能够再次获取它。
如果他们只使用.NET类型,您仍然需要引用正确的.NET程序集。当然,他们可能只使用System中的类型,但很可能他们会从您需要引用的库中序列化一些自定义对象。