Evento de incendio cuando una propiedad o variable cambia de valor.
Quiero agregar más funcionalidad a un proyecto que tengo que hace uso de una serie de clases empaquetadas en NET Framework. Estas mismas clases proporcionan una serie de propiedades que pueden ser muy útiles para adaptar la funcionalidad de mi proyecto, sin embargo, una cosa de la que carecen estas clases son los Eventos.
Si cada propiedad tuviera un evento apropiado que se activaría cada vez que cambiara el valor de dicha propiedad, podría asignar un controlador de eventos que actuaría según el valor de esas propiedades.
Hice un ejemplo de un caso a continuación para ilustrar mi objetivo de la manera más simple que podía pensar.
Caso de la muestra:
losSystem.Net.Sockets.Socket
clase (Socket en MSDN Docs) tiene una propiedad llamadaConnected
que básicamente devuelve verdadero si el socket está conectado a un punto final especificado, de lo contrario devuelve falso.
Lo que me gustaría lograr es simple. Me gustaría mantener esta propiedad bajo "vigilancia" y cuando el valor de la misma cambie, dispare un evento.
Hacer eso a una de mis propias clases sería simple aunque un poco cansado usando elInterfaz INotifyPropertyChanged, simplemente porque siempre que mi código cambió el valor de la propiedad, tendría que disparar el evento manualmente. Desafortunadamente, por lo que yo sé, ni siquiera este tipo de procedimiento puede aplicarse a los existentesSocket
Clase distribuida dentro de NET Framework.
Bueno, esta pregunta se está volviendo bastante extensa, lo siento, pero espero que haya dado una idea de mi objetivo.
Ahora simplemente poniéndolo, quiero ver elConnected
propiedad de laSocket
clase y cuando el valor de la misma cambia, dispara un evento. Y si fuera posible utilizar también este enfoque para observar variables y propiedades, sería increíble, no solo para mí, sino para todos los que se topan con esta pregunta en SO.
Por supuesto, se prefiere un enfoque simple y ligero, pero sobre todo, quiero entender cómo se puede hacer, por lo que en el futuro puedo aplicarlo en escala masiva a otras clases.
Me doy cuenta de que estoy pidiendo mucho. Muchas gracias.
Cualquier pregunta solo pregunte.