在C#中,在实体完全修改之前,延迟处理所有已知事件的最佳方法是什么?比如说,实体 - MyEntity - 具有属性ID,名称和描述......
public class MyEntity
{
public Int32 ID { get; set; }
public String Name { get; set; }
public String Description { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
修改每个属性时,会为每个修改触发一个事件.
有时,ID是唯一已修改的属性,有时会修改所有属性.我希望修改事件的已注册侦听器等待,直到修改了"批处理"中修改的所有属性.
完成此任务的最佳方法是什么?
在我的脑海中,类似于UnitOfWork模式,可以在调用堆栈的顶层包装一个using语句围绕方法调用,但不知道如何实现这样的事情......
编辑:作为澄清......监听器通过应用程序分散,并在其他线程中执行.另一个actor设置 - 例如 - 它必须调用MyEntity.Name属性来设置值的名称.
由于设计原因,Name属性的修改可以触发其他属性更改,因此需要听众知道属性的修改已经完成.