C#では、エンティティが完全に変更されるまで、すべての既知のイベントの処理を遅らせるための最良の方法は何ですか?たとえば、エンティティ(MyEntity)のプロパティID、名前、説明が...であるとします。
public class MyEntity
{
public Int32 ID { get; set; }
public String Name { get; set; }
public String Description { get; set; }
}
これらの各プロパティを変更すると、変更ごとにイベントが発生します。
変更されるプロパティはIDだけの場合もあれば、すべてのプロパティが変更される場合もあります。「バッチ」で変更されるすべてのプロパティが変更されるまで、変更イベントの登録済みリスナーを待機させたい。
これを達成するための最良の方法は何ですか?
私の頭の中では、UnitOfWork-patternに似たもので、呼び出しスタックの最上位のメソッド呼び出しの周りにusingステートメントをラップすることは可能ですが、そのようなことを実装する方法がわかりません...
編集:説明として...リスナーはアプリケーション全体に分散しており、他のスレッドで実行されています。別のアクターは、たとえば、値を設定するためにMyEntity.Nameプロパティを呼び出す必要がある名前を設定します。
設計上、Nameプロパティを変更すると、他のプロパティが変更される可能性があります。したがって、リスナーは、プロパティの変更が完了したことを知る必要があります。