C# - .NET 3.5Un método que se ejecuta cada vez que se accede a una propiedad de clase (get o set)?
que tienen una familia de clases que heredan de la misma clase base. Quiero que se invoque un método en la clase base cada vez que se accede a una propiedad en una clase derivada (get o set). Sin embargo, no quiero escribir código en cada propiedad para llamar a la clase base ... en su lugar, espero que haya una forma declarativa de "hundir" esta actividad en la clase base.
Agregando un poco de picante al requisito, necesito determinar el nombre de la propiedad a la que se accedió, el valor de la propiedad y su tipo.
Imagino que la solución sería una inteligente combinación de delegado, genéricos y reflexión. Puedo imaginar la creación de algún tipo de matriz de asignaciones de delegados en tiempo de ejecución, pero iterar sobre el MemberInfo en el constructor tendría un impacto en el rendimiento más de lo que me gustaría. Nuevamente, espero que haya una forma más directa y "declarativa" de hacer esto.
¡Todas las ideas son muy apreciadas!
Debo señalar también que aunque INotifyPropertyChanged le permite pasar un nombre de propiedad, no hace falta ser un científico espacial para llevar el concepto un paso más allá y escribir su propia versión de la interfaz que también permita que el valor de la propiedad, etc. pasado. Aunque lo que está proponiendo, si bien puede sonar ingenioso en teoría, va a agregar MUCHA sobrecarga a su aplicación, y tendrá que considerar tener interruptores de compilación condicionales en su código. – slugster