属性更改时触发事件

时间:2019-07-10 10:37:04

标签: c# reflection analysis

我正在尝试编写一个分析工具,用于比较和跟踪您的应用程序中的数据。

我目前的目标是找到一种方法,一旦跟踪的属性的值发生变化,即可将触发器发送给经理。

在理想的世界中,设置跟踪属性的过程应尽可能简单,而无需像INotifyPropertyChanged界面那样按代码方式更改实际属性。带有有效获取器和设置器的任何属性都应该是可跟踪的。

我的想法是使用Reflection钩住属性的setter方法,并在调用setter之后在其中添加回调。

是否有更好的方法来解决此问题?还是可以通过反思来解决这个问题,如果可以,怎么办?

1 个答案:

答案 0 :(得分:2)

如果每次更改都应尽快发送触发器,则唯一的选择是在属性周围添加包装器(一种或另一种)。 AOP框架可以大大简化此过程,并有助于避免样板代码(例如INotifyPropertyChanged“模式”)。其中每个都有其优缺点,例如: