【发布时间】:2011-08-12 23:25:41
【问题描述】:
我正在研究基于对象模型的序列化散列。
如果我使用 .NET BinaryFormatter 序列化一个对象图,对于所有涉及的对象都由相同值组成的另一个对象图,序列化表示是否保证字节对字节完全相同?
直觉上,我是这么认为的,但我不确定对象/引用 ID 是否会以某种方式影响实际的序列化表示。
提前致谢。
【问题讨论】:
标签: .net serialization binaryformatter
我正在研究基于对象模型的序列化散列。
如果我使用 .NET BinaryFormatter 序列化一个对象图,对于所有涉及的对象都由相同值组成的另一个对象图,序列化表示是否保证字节对字节完全相同?
直觉上,我是这么认为的,但我不确定对象/引用 ID 是否会以某种方式影响实际的序列化表示。
提前致谢。
【问题讨论】:
标签: .net serialization binaryformatter
我不知道这是保证,并且由于缺乏书面保证,我不会个人依赖它。特别是:
ISerializable(即自定义序列化)的东西都可以随心所欲
但是,如果您在谈论二进制等价,我推断您正在谈论BinaryFormatter 数据的存储,以及稍后的后续比较。请允许我强调:IMO,BinaryFormatter 不适合存储;在共享平台和应用程序版本的运行系统之间传输数据是可以的(ish),但是由于版本差异和BinaryFormatter,我看到人们陷入困境的绝对数量是压倒性的。 出于这些原因,我对 protobuf 产生了兴趣,并编写了我自己的序列化程序,将适用于存储和再水化现有对象模型,这些模型已经“版本化”了临时。
【讨论】: