【问题标题】:Implementing INotifyPropertyChanged or similar custom event in base class在基类中实现 INotifyPropertyChanged 或类似的自定义事件
【发布时间】: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


【解决方案1】:

代理或 AOP 确实是您自动执行此操作的唯一选择,因此您需要找时间进行调查或通过 good old-fashioned way 执行此操作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-06-29
    • 1970-01-01
    • 1970-01-01
    • 2011-04-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-05
    相关资源
    最近更新 更多