C# - .net 3.5Une méthode qui s'exécute à chaque fois qu'une propriété de classe est accédée (get ou set)?
J'ai une famille de classes qui hérite de la même classe de base. Je souhaite qu'une méthode de la classe de base soit appelée à chaque fois qu'une propriété d'une classe dérivée est accédée (get ou set). Cependant, je ne veux pas écrire de code dans chaque propriété pour appeler la classe de base ... au lieu de cela, j'espère qu'il y a un moyen déclaratif de "couler" cette activité dans la classe de base.
Ajout d'un peu de piquant à l'exigence, j'ai besoin de déterminer le nom de la propriété qui a été accédé, la valeur de la propriété et son type.
J'imagine que la solution serait une combinaison intelligente d'un délégué, de génériques et de réflexion. Je peux envisager de créer un certain type de tableau d'assignations de délégués lors de l'exécution, mais iterer sur le MemberInfo dans le constructeur aurait un impact sur les performances plus que je ne le voudrais. Encore une fois, j'espère qu'il existe un moyen plus «déclaratif» de le faire.
Toutes les idées sont les plus appréciées!
Je tiens également à souligner que si INotifyPropertyChanged vous permet de passer un nom de propriété, il ne faut pas qu'un concepteur de fusée pousse le concept un peu plus loin et écrive votre propre version de l'interface qui permet également de passé. Bien que ce que vous proposez, bien que cela puisse sembler intelligent en théorie, va ajouter BEAUCOUP de surcharge à votre application, et vous devrez envisager d'avoir des commutations de compilation conditionnelles dans votre code. – slugster