在不知道类的情况下读取二进制序列化文件

时间:2014-11-17 09:55:44

标签: c# .net serialization

如果我将二进制序列化一个.NET对象(比如类Employee的对象)编译到一个文件中。现在,其他一些智能urchin决定使用.NET应用程序对该文件进行反序列化,但他不知道该文件是序列化的Employee对象。他是否能够从该文件中读取数据,直到他不知道该类的对象被序列化为止?如果是,怎么样?

PS - 我猜我们可以将数据转换为字节数组然后使用它,我只知道如何读取员工类属性的值。

2 个答案:

答案 0 :(得分:1)

如果您已经知道类",则只能对二进制序列化对象进行反序列化,因为这是序列化数据的一部分。

如果您的应用程序中没有该类,则无法使用二进制序列化程序对该对象进行反序列化。
您可以将数据读作byte[],但解析可能非常困难。

你能解释一下你的更大的画面"你需要这样的逻辑 - 可能有更好的解决方案。

通常,如果要在没有序列化类的情况下读取数据,则应使用另一种序列化模式,如XML。

答案 1 :(得分:0)

如果另一个应用程序定义了相同的类,则可以对文件进行反序列化。

将使用完全限定名称确定班级。所以该类应具有相同的名称,命名空间和程序集。

如果这是一个强类型的程序集,那么版本也应该是相同的。