Ich habe vor kurzem begonnen, mit PostSharp zu experimentieren, und ich fand einen besonders hilfreichen Aspekt zur Automatisierung der Implementierung von INotifyPropertyChanged. Sie können das Beispiel here sehen. Die grundlegende Funktionalität ist hervorragend (alle Eigenschaften werden benachrichtigt), aber es gibt Fälle, in denen ich die Benachrichtigung unterdrücken möchte.Unterdrücken von PostSharp Multicast mit Attribut
Zum Beispiel könnte ich wissen, dass eine bestimmte Eigenschaft einmal im Konstruktor festgelegt ist und sich nie wieder ändern wird. Daher muss der Code für NotifyPropertyChanged nicht ausgegeben werden. Der Aufwand ist minimal, wenn Klassen nicht häufig instanziiert werden, und ich kann das Problem verhindern, indem ich von einer automatisch generierten Eigenschaft auf eine Feld-unterstützte Eigenschaft umschalte und in das Feld schreibe. Wenn ich jedoch dieses neue Tool lerne, wäre es hilfreich zu wissen, ob es eine Möglichkeit gibt, eine Eigenschaft mit einem Attribut zu versehen, um die Codegenerierung zu unterdrücken. Ich möchte in der Lage sein, so etwas zu tun:
[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;
}
}
Ausgezeichnet, danke. Dies ist ein sehr leistungsfähiges Werkzeug und mein Projekt fühlt sich deutlich sauberer ohne all die lästigen INotifyPropertyChanged Sanitär. –