同じオブジェクトの 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 つのインスタンスの違いをリストするオブジェクトを返すインテリジェントな方法を見つけることです(たとえば、2 つの特定の StepDocs が追加され、1 つの特定の StepUser が削除され、1 つのルールが " Go" から "Stop" へ)。私は MD5 ハッシュの使用を検討してきましたが、このようなオブジェクトをトラバースして特定の違いのマニフェストを返す良い例を見つけることができません(それらが異なることを示すだけではありません)。
追加の背景:私がこれを行う必要がある理由は、私がサポートしている API が、クライアントが SaveStep(Step step) を実行できるようにするためです...これは、エンティティとリポジトリを使用して Step オブジェクトをデータベースに永続化するのに最適です。ただし、ステップ内の特定の要素が変更されたことを別のシステム (ワークフロー エンジン) に警告するために、この SaveStep メソッドから特定のイベント (このユーザーが追加されたなど) を発生させる必要があります。ありがとうございました。