我发现很多DynamicProxy的例子用于在对象中更改属性时执行其他工作,但是我如何设置拦截器中的属性值(通过调用Proceed()
如果在拦截过程中出现问题,还会回滚吗?
这里的用例是这样的:我使用设置对象为系统的某些部分提供设置值,因此它们不必使用配置后端。
这些对象也是INotifyPropertyChanged
,因此如果有人在运行时更改了设置,那么拥有该对象的组件会收到有关更改的通知,并可以动态执行重新配置。
所以我需要做的是回滚属性的更改,如果PropertyChanged
事件处理程序抛出异常(更改导致配置错误或无效)。
我想知道如何做到这一点。
我最终同时使用INotifyPropertyChanging
(并稍微扩展了此接口)和INotifyPropertyChanged
。只是因为验证应该在之前实际设置,因为
INPChanged
当我现在看这个时,原始设计(问题所在)对我来说似乎很糟糕。