【发布时间】:2011-05-21 00:41:34
【问题描述】:
我正在创建一个框架,我在其中提供基类,框架的实现者将从基类继承并提供额外的属性和方法。在基类中,我想有一种方法来观察属性值何时发生变化。该属性可以来自基类或任何子类。我知道通过反射,我可以确定任何实例的属性列表,但是有没有办法可以跟踪属性变化值?
这是我所说的一个非常简单的例子:
public class BaseClass
{
public string BaseClassProperty { get; set; }
public void DoSomethingWhenEitherPropertyGetsChanged()
{
}
}
public class SubClass : BaseClass
{
public string SubClassProperty { get; set; }
}
当任一属性的值发生更改时,我该怎么做才能让 DoSomethingWhenEitherPropertyGetsChanged 执行。
【问题讨论】:
-
即使在基类中,您也必须在属性设置器中调用
DoSomethingWhenEitherPropertyGetsChanged(),以便您可以在子类的属性设置器中执行相同的调用。 -
对于任何对实现拦截器感兴趣的人,请查看TinyInterceptor