В настоящее время у меня есть метод установки, который выглядит следующим образом:
private string _a;
public virtual string A
{
get { return _a; }
set
{
if (_a!= value)
{
if (this.OnPropertyChanging("A", _a, value))
{
var previousValue = _a;
_a = value;
this.OnPropertyChanged("A", previousValue, value);
}
}
}
}
Я реализовал это с помощью ученика доктора Уили (http://stackoverflow.com/a/8578507/981225),) с помощью пользовательского обработчика Changing, который отслеживает старое и текущее значение, а также возможностью установить событие Changing как «Отменено», так что Изменение свойства не произойдет.
Это отлично работает. Тем не менее, у нас есть сотни свойств, и это много кода-дубликата.
Я использовал DynamicProxy Касла в прошлом, чтобы избежать необходимости писать 'OnPropertyChanged ("A") ".
Как я могу реализовать логику в этом установщике, как часть метода Перехват Прокси? Является ли это возможным? Спасибо.