我最近开始尝试使用 PostSharp,我发现了一个特别有用的方面来自动化 INotifyPropertyChanged 的实现。您可以在此处查看示例。基本功能非常好(将通知所有属性),但在某些情况下我可能想要禁止通知。
例如,我可能知道某个特定属性在构造函数中设置了一次,并且永远不会再更改。因此,无需发出 NotifyPropertyChanged 的代码。当类不经常实例化时开销最小,我可以通过从自动生成的属性切换到字段支持的属性并写入字段来防止问题。但是,当我正在学习这个新工具时,了解是否有办法用属性标记属性以抑制代码生成会很有帮助。我希望能够做这样的事情:
[NotifyPropertyChanged]
public class MyClass
{
public double SomeValue { get; set; }
public double ModifiedValue { get; private set; }
[SuppressNotify]
public double OnlySetOnce { get; private set; }
public MyClass()
{
OnlySetOnce = 1.0;
}
}