【发布时间】:2011-01-06 15:35:04
【问题描述】:
我有一个对话框,它在生成时会填充对象模型中的数据。此时,数据被复制并存储在“备份”对象模型中。当用户完成更改并单击“确定”关闭对话框时,我需要一种快速比较备份对象模型和实时对象模型的方法 - 如果有任何更改,我可以为用户创建一个新的撤消状态。
如果可能的话,我不想为对象模型中的每个类都编写比较函数。
如果我序列化两个对象模型并且它们相同但存储在不同的内存位置,它们是否相等?是否存在一些简单的方法来比较两个序列化对象模型?
【问题讨论】:
-
您能否提供更多有关您使用的技术的详细信息。您使用的是 WPF、WinForms 还是 Silverlight?使用 Entity Framework 或 WCF RIA 服务有一种非常简单的方法。
-
嗨 Andrew - 我使用 .net 3.5 和 WPF 和 c# express 2008
-
您使用的是实体框架、POCO 还是其他?
-
那么,我猜你正在使用 POCO(Plain-old-CLR-objects)。我认为您的想法可能可行 - 只需序列化它们,然后可能散列该字符串,并比较两个对象模型之间的散列值。我不能保证这会可靠地工作,但我认为值得研究!跨度>
-
好吧,首先序列化对象,然后计算序列化数据的哈希值。现在,请记住散列不会是唯一的 - 可能有两个不同的对象模型散列到相同的值,尽管我觉得这不太可能。
标签: c# serialization comparison