我正在创建一个框架,我在其中提供基类,框架的实现者将从基类继承并提供额外的属性和方法。在基类中,我希望有一种观察属性值何时更改的方法。该属性可以来自基类或任何子类。我知道通过反射,我可以从任何实例中确定属性列表,但是有没有一种方法可以跟踪属性的变化值?
这是我所说的一个非常简单的例子:
public class BaseClass
{
public string BaseClassProperty { get; set; }
public void DoSomethingWhenEitherPropertyGetsChanged()
{
}
}
public class SubClass : BaseClass
{
public string SubClassProperty { get; set; }
}
当任一属性的值发生更改时,我该怎么做才能让 DoSomethingWhenEitherPropertyGetsChanged
得到执行。
最佳答案
为此,您可以使用 notifypropertyweaver
。它正是你想要的。这是一个链接:
来自开源主页:
使用 IL 编织(通过 http://www.mono-project.com/Cecil)将 INotifyPropertyChanged 代码注入(inject)属性。
- 不需要属性
- 无需引用
- 不需要基类
- 支持 .net 3.5、.net 4、Silverlight 3、Silverlight 4、Silverlight 5 和 Windows Phone 7
- 支持客户端配置文件模式
关于C# - 拦截子类中的属性更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6078859/