Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在基类中实现INotifyPropertyChanged或类似自定义事件_C#_Inheritance_Aop_Inotifypropertychanged_Castle - Fatal编程技术网

C# 在基类中实现INotifyPropertyChanged或类似自定义事件

C# 在基类中实现INotifyPropertyChanged或类似自定义事件,c#,inheritance,aop,inotifypropertychanged,castle,C#,Inheritance,Aop,Inotifypropertychanged,Castle,有没有办法做到这一点: 我需要开发最简单的方法来支持注册某些类别的财产变更。除了手动添加InotifyPropertyChanged支持外,还有其他方法可以这样做: class Base ... // all notification logic here class Child { public string Name { get; set; } public int SomeNumber { get; set; } // etc.... } 这样我就可以执行Chi

有没有办法做到这一点:

我需要开发最简单的方法来支持注册某些类别的财产变更。除了手动添加InotifyPropertyChanged支持外,还有其他方法可以这样做:

class Base ... // all notification logic here

class Child
{
    public string Name { get; set; }
    public int SomeNumber { get; set; }
    // etc....
}
这样我就可以执行Child.PropertyChanged+=某个\u处理程序,并且只在子属性更改时收到通知。 这不是为NHibernate或其他任何东西,它是为整个项目中的手动使用。我已经研究了一些使用Castle Dynamic Proxy(如)执行此操作的示例,但我不知道如何利用它:(

当然,我想探索一下这些框架和AOP,我只是现在没有足够的时间


提前感谢您的任何评论…

代理或AOP实际上是您自动执行此操作的唯一选项,因此您需要找时间进行调查或执行此操作。

好的…我正在做一些事情…要使用Castle DP开始上述链接,您必须将创建的对象强制转换为INotifyPropertyChanged。要简化,请您可以创建如下内容:公共静态无效寄存器(T toRegister,PropertyChangedEventHandler处理程序){((INotifyPropertyChanged)toRegister).PropertyChanged+=handler;}