在不知道类的情况下读取二进制序列化文件
本文关键字:二进制 序列化 文件 读取 情况下 不知道 | 更新日期: 2023-09-27 18:30:46
如果我已将 .NET 对象(假设类 Employee 的对象)二进制序列化为文件。现在,其他一些聪明的顽童决定使用 .NET 应用程序反序列化该文件,但他不知道该文件是序列化的 Employee 对象。他是否能够从该文件读取数据,直到他不知道该类的对象已序列化?如果是,如何?
PS - 我猜我们可以将数据放入一个字节数组中然后使用它,我只知道如何读取员工类属性的值。
二进制序列化对象只有在"知道类"的情况下才能反序列化,因为这是序列化数据的一部分。
如果应用程序中没有该类,则无法使用二进制序列化程序反序列化该对象。
您始终可以读取数据byte[]
,但解析这可能非常困难。
你能解释一下你的"大局",你需要这样的逻辑吗——也许有更好的解决方案。
通常,如果要在没有序列化类的情况下读取数据,则应使用另一种序列化模式,如 XML。
如果其他应用程序定义了相同的类,则可以反序列化该文件。
将使用完全限定名确定类。因此,该类应具有相同的名称、命名空间和程序集。
如果这是强类型程序集,则版本也应相同。