【问题标题】:AOP w/ PostSharp - Classic NotifyPropertyChanged PropertyChanged Event Handler Missing?带有 PostSharp 的 AOP - 缺少经典 NotifyPropertyChanged PropertyChanged 事件处理程序?
【发布时间】:2011-02-23 13:05:59
【问题描述】:

PostSharp 2.0 的新手并尝试此处提供的 NotifyPropertyChanged AOP 类: http://www.sharpcrafters.com/solutions/ui#undo-redo

当我尝试挂接到 PropertyChanged 事件处理程序时,编译器告诉我它没有定义。我没有直接在有问题的对象上实现 INotifyPropertyChanged 接口,只应用了属性。

我会假设答案是实现接口,但这有点破坏了简单性,是我遗漏了什么还是这也是一个要求?

有没有办法让PostSharp修改类预编译来引入这些成员/接口?

【问题讨论】:

  • 具体情况可以实现INotifyPropertyChanged接口,在需要处理的类上声明事件。你的方面仍然有效。如果您在编译时需要它,则必须显式声明它。

标签: c# .net aop inotifypropertychanged postsharp


【解决方案1】:

我想,您正试图在同一个程序集中订阅该事件。 PostSharp 正在编译您的程序集后重写它。因此,这只有在您引用已被 PostSharp 二进制重写器重写的程序集时才有效。

【讨论】:

  • 有没有办法让 PostSharp 在主要编译步骤开始之前在某处修改它?那么解决方法是什么,只实现接口和事件以及 [MarkupAttribute]?
  • 在编译前修改它意味着修改你的代码。 PostSharp 不会那样做。您的解决方法听起来很合理,但我不知道它是否有效。我建议,您只需尝试一下。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多