我正在做一个项目,我们希望保留特定对象的历史记录。在保存时,我想要一个对象上的方法来确定它是否已更改,以便我可以调用一个方法将其当前状态保存到历史记录。例如,我从用户进行更改(或可能不更改)的对象填充表单并提交来自。我想获取我的原始对象和已从表单更新的该对象的副本,并确定它是否已更改。此外,我可能会在某些时候决定某些属性无关紧要(例如,如果名称更改,我将不会跟踪它)。
我认为最简单/最灵活的方法是如果我可以提供我关心的自定义属性 [ChangeTracked] 的属性,然后我可以使用反射来获取具有该属性的所有属性的列表并遍历它们比较 A.property == B.property 以确定是否有任何更改。
这行得通吗?是否有更好/更简单的方法来处理这个问题,比如可以添加到对象以确定任何属性的值是否已更改的某种内置方法?无论解决方案如何,都将不胜感激一些伪代码。作为一个澄清点,解决方案需要确定我关心的值是否实际上已经改变,而不仅仅是它自创建以来是否已被分配,即如果我设置 Name="bob" 并且在我分配之前它已经是 "bob"这不算作改变。