在我们的客户机/服务器应用程序中,我们一直在使用binaryformatter进行序列化过程。
出于性能原因,我们尝试迁移到protobuf net(http://code.google.com/p/protobuf-net/)。
我们的软件通过客户机和服务器之间的循环来传输巨大的图形。
现在,我正在寻找一种方法来确保使用OrthBufff序列化和反序列化的数据与通常由BinaryFormatter处理的数据完全相同。
一点一点的比较很简单:
我使用BinaryFormatter将文件序列化。
使用BinaryFormatter再次反序列化此文件。
然后我使用protobuf将其序列化为一个文件。
使用该文件中的protobuf反序列化。
使用BinaryFormatter再次序列化到文件中。
然后我可以简单地将文件与原始文件进行比较。
但是,这两个文件并非100%相等。所以现在我需要找到一种方法来找出差异。
可能有一些工具可以可视化BinaryFormatter所序列化的数据吗?或者你认识一些其他的助手,他们做了深入的比较,告诉我不同之处在哪里?
使用XmlSerializer并比较两个XML文件是不可能的,因为即使没有显式标记字段,BinaryFormatter也能够序列化比XmlSerializer更多的数据。
谢谢您,
真实航向
最佳答案
如何在启用对象跟踪的情况下使用DataContractSerializer
(构造函数中为preserveObjectReferences
)。这应该允许您将它们序列化为xml(至少是某种类型的),在那里您可以比较它们之间的差异。