【发布时间】:2011-09-28 08:49:09
【问题描述】:
有没有办法做到这一点:
我需要开发最简单的方法来支持注册某些类的属性更改。除了手动添加 INotifyProperyChanged 支持之外,还有没有办法像这样:
class Base ... // all notification logic here
class Child
{
public string Name { get; set; }
public int SomeNumber { get; set; }
// etc....
}
这样我就可以执行 Child.PropertyChanged += some_handler 并且仅在 Child 属性更改时收到通知。 这不适用于 NHibernate 或其他任何东西,它用于在整个项目中手动使用。我已经研究了一些使用 Castle Dynamic Proxy 执行此操作的示例(例如 here),但我不明白如何利用它:(
当然很想探索那里的框架和 AOP,我只是现在没有足够的时间......
提前感谢您的任何 cmets...
【问题讨论】:
-
好的...我在某个地方...首先使用Castle DP 提到的链接,您必须将创建的对象转换为INotifyPropertyChanged。为简化起见,您可以创建如下内容: public static void Register
(T toRegister, PropertyChangedEventHandler handler) { ((INotifyPropertyChanged)toRegister).PropertyChanged += handler; }
标签: c# inheritance aop inotifypropertychanged castle