2010-11-29 10 views
0

Ich habe viele Entitätsklassen, und jetzt in allen Eigenschaften der Entity-Klassen müssen neue Funktionalität hinzufügen (rufen Sie eine Methode) in den Getter und Setter. Was ich sagen will, sieht wie folgt aus:Dynamisch Aufrufmethode in C#

public class PersistentClass : BaseClass { 
private string attr1; 
[Persistent] 
public string Attr1 
{ 
    get 
    { 
     //need to call here base class method 
     //refreshContents(); 
     return attr1; 
    } 
    set 
    { 
     //need to call here base class method 
     //refreshContents(); 
     attr1 = value; 
    } 
} 

private SomeObject attr2; 
[Persistent] 
public SomeObject Attr2 
{ 
    get 
    { 
     //need to call here base class method 
     //refreshContents(); 
     return attr2; 
    } 
    set 
    { 
     //need to call here base class method 
     //refreshContents(); 
     attr2 = value; 
    } 
} 

private List<SomeOtherObhect> details; 
[Persistent] 
pubic List<SomeOtherObject> Details 
{ 
    get 
    { 
     //need to call here base class method 
     //refreshContents("details"); 
     return details; 
    } 
    set 
    { 
     //need to call here base class method 
     //refreshContents("details"); 
     details = value; 
    } 
} 

}

Für verschiedene Arten von Feldern muss ich zum Beispiel verschiedene Methoden aufrufen refreshContents() und refreshContetns("fieldName"). Ich versuche, Probleme mit IoC und Dependency Injection zu lösen. Könnten Sie mir bitte helfen?

+0

Sie tun bereits, was Sie erreichen möchten. Solange Sie eine refreshContetns-Methode in der Basisklasse haben, funktioniert es :-) –

Antwort

0

Was wird IoC oder DI in Ihrem Fall tun?

Ich glaube, Sie nur eine generische Methode in der Basisklasse wollen und Thios Methode von Getter oder Setter

0

rufen Wenn Sie Ihren Auffrischlogik an einem Ort zu halten, und es anders aus Ihren Eigenschaften nennt, betrachten INotifyPropertyChanged Umsetzung und Behandeln des PropertyChanged-Ereignisses in Ihrer Entitätsklasse selbst und Implementieren der Aktualisierungslogik dort.

Wichtigere Frage ist jedoch, warum Sie den Inhalt aktualisieren möchten, wenn eine Eigenschaft festgelegt ist oder erhalten? Es kann hilfreich sein, zu verstehen, ob Sie einige echte Eigenschaftsnamen angeben.