我正在考虑基于对象模型的序列化来散列对象模型。
如果我使用.NET BinaryFormatter序列化对象图,那么序列化表示是否保证完全相同,字节为字节,对于另一个对象图,其中所有涉及的对象都由相同的值组成?
直观地说,我是这么认为的,但我不确定对象/引用ID是否会以某种方式影响实际的序列化表示。
提前致谢。
答案 0 :(得分:2)
我不知道保证,并且由于缺乏文件保证,我不会个人依赖它。特别是:
ISerializable
(即自定义序列化)的内容都可以 随心所欲 但是,如果你在谈论二进制等价,我推断你正在谈论BinaryFormatter
数据的存储,以及随后的比较。请允许我强调:IMO,BinaryFormatter
不适合存储;在共享平台和应用程序版本的正在运行的系统之间传输数据是可以的(ish),但是由于版本差异和BinaryFormatter
,我看到人们陷入困境的绝对次数是压倒性的。 由于这些原因我对protobuf感兴趣,并编写了我自己的序列化程序, 适合存储和补充现有对象模型,这些对象模型已经“版本化”过渡期。