我想生成同一对象的 2 个实例之间的差异列表。有问题的对象:
public class Step
{
[DataMember]
public StepInstanceInfo InstanceInfo { get; set; }
[DataMember]
public Collection<string> AdHocRules { get; set; }
[DataMember]
public Collection<StepDoc> StepDocs
{...}
[DataMember]
public Collection<StepUsers> StepUsers
{...}
}
我想做的是找到一种智能方法来返回一个列出两个实例之间差异的对象(例如,让我知道添加了 2 个特定的 StepDocs,删除了 1 个特定的 StepUser,并且一个规则从“去”到“停止”)。我一直在研究使用 MD5 哈希,但我找不到任何像这样遍历对象并返回具体差异清单的好例子(不仅仅是表明它们不同)。
附加背景:我需要这样做的原因是我支持的 API 允许客户端保存步骤(步骤步骤)......这对于使用实体和存储库将步骤对象持久保存到数据库非常有用。不过,我需要从此 SaveStep 方法引发特定事件(例如添加了此用户等),以提醒另一个系统(工作流引擎)步骤中的特定元素已更改。谢谢你。