2009-06-11 5 views
4

ich mich diesen Code zu schreiben viel:Ist eine extrem heterogene Attribute zu verwenden, um automatisch ein Event auf einer Eigenschaftsänderung zu erhöhen

private int _operationalPlan; 
    public int OperationalPlan 
    { 
     get 
     { 
      return _operationalPlan; 
     } 
     set 
     { 
      _operationalPlan = value; 
      RaisePropertyChanged(); 
     } 
    } 

    private void RaisePropertyChanged() 
    { 
     if (PropertyChanged != null) 
     { 
      PropertyChanged(this, new 
             PropertyChangedEventArgs("PlansSelected")); 
     } 
    } 

Ich frage mich, ob es möglich sein könnte, ein Attribut zu schreiben, könnte hinzugefügt, um das Ereignis automatisch zu erhöhen. I.e. so etwas wie dieses:

[RaiseOnSet("ProperyChanged", "PropertyChangedEventArgs", "PlansSelected")] 
public int OperationalPlan 
{ 
    get 
    { 
     return _operationalPlan; 
    } 
    set 
    { 
     _operationalPlan = value; 
     RaisePropertyChanged(); 
    } 
} 

Bevor ich gehen und versuchen, diese zu implementieren Ich habe mich gefragt:

  • Ist diese Anlage in .NET Framework
  • Hat jemand an diese Einrichtung versucht
  • Wenn es ist möglich
  • Wenn es irgendwelche Sackgassen gibt, die ich vermeiden sollte

Antwort

5

, das zu tun, würden Sie einen AOP Framework für .NET benötigen, wie PostSharp oder AOP.NET

0

ich Sie bereit sind, eine Hilfsklasse zu verwenden, um die Eigenschaftswerte wickeln Sie dies tun können. Das bedeutet jedoch, dass jeder Client, der auf die Eigenschaft zugreift, den Wert auspacken muss.

Eine andere Route ist die Verwendung eines Hilfstyps, siehe hierzu WPF und WF mit (anderer) DependencyProperty. Sie erhalten jedoch keine automatisch implementierten Eigenschaften.

Verwandte Themen