В С#, какой лучший способ отложить обработку всех известных событий до тех пор, пока объект не будет полностью изменен? Скажем, например, что объект - MyEntity - имеет идентификаторы свойств, имя и описание...
public class MyEntity
{
public Int32 ID { get; set; }
public String Name { get; set; }
public String Description { get; set; }
}
При изменении каждого из этих свойств событие запускается для каждой модификации.
Иногда идентификатор является единственным измененным свойством, и иногда все свойства изменяются. Я хочу, чтобы зарегистрированные слушатели события модификации подождали, пока все свойства, измененные в "пакетной", были изменены.
Каков наилучший способ для этого?
В моей голове что-то похожее на шаблон UnitOfWork, где можно заключить оператор using вокруг вызова метода на верхнем уровне стека вызовов, но не имеет понятия, как реализовать такую вещь...
Изменить: В качестве пояснения... Слушатели распространяются через приложение и выполняются в других потоках. Другой актер устанавливает, например, имя, которое должно вызывать свойство MyEntity.Name, чтобы установить значение.
Из-за дизайна изменение свойства Name может инициировать изменение других свойств, поэтому слушатели должны знать, что модификация свойств завершена.