2010-11-29 14 views
0

J'ai beaucoup de classes d'entités, et maintenant dans toutes les propriétés des classes d'entité doivent ajouter de nouvelles fonctionnalités (appeler une méthode) dans les getters et les setters. Ce que je veux dire ressemble à ceci:Appel dynamique méthode dans 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; 
    } 
} 

}

Pour différents types de champs i besoin d'appeler des méthodes différentes par exemple refreshContents() et refreshContetns("fieldName"). Je cherche à résoudre le problème avec l'IoC et l'injection de dépendance. Pourriez-vous m'aider s'il vous plaît?

+0

vous faites déjà ce que vous voulez. Tant que vous avez une méthode refreshContetns dans la classe de base cela fonctionne :-) –

Répondre

0

Que feront ou IoC DI dans votre cas?

je pense que vous voulez juste une méthode générique dans la classe de base et appelez thios méthode de getters ou setters

0

Si vous voulez garder votre logique de rafraîchissement à un endroit, et l'appeler différemment de vos propriétés, pensez à la mise en œuvre INotifyPropertyChanged et gérer l'événement PropertyChanged dans votre classe d'entité elle-même et implémenter la logique d'actualisation à cet endroit.

Cependant, question plus importante est pourquoi voulez-vous actualiser le contenu quand une propriété est définie ou obtenir? Il pourrait être utile de comprendre si vous fournissez des noms de biens immobiliers.