最近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;
}
}