Evento de incêndio quando uma propriedade ou variável altera o valor

Eu quero adicionar mais funcionalidades para um projeto que tenho que faz uso de um número de classes empacotadas no NET Framework. Essas mesmas classes fornecem um número de propriedades que podem ser bastante úteis para adaptar a funcionalidade do meu projeto, no entanto, uma coisa que essas classes não possuem são Eventos.

Se cada propriedade tivesse um evento apropriado que fosse disparado sempre que o valor dessa propriedade fosse alterado, eu poderia então designar um manipulador de eventos que agiria com base no valor dessas propriedades.

Eu fiz um exemplo abaixo para ilustrar meu objetivo da maneira mais simples que eu poderia pensar.

Exemplo de caso:

oSystem.Net.Sockets.Socket classe (Soquete no MSDN Docs) tem uma propriedade chamadaConnected Isso basicamente retorna true se o socket está conectado a um ponto final especificado, caso contrário retorna false.

O que eu gostaria de realizar é simples. Eu gostaria de manter essa propriedade em "watch" e quando o valor mudar, disparar um evento.

Fazendo isso para uma das minhas próprias aulas, seria simples, embora um pouco cansativo usando oInterface INotifyPropertyChanged, simplesmente porque sempre que meu código alterava o valor da propriedade eu teria que disparar o evento manualmente. Infelizmente, pelo que sei, nem este tipo de procedimento pode ser aplicado ao existenteSocket classe distribuída no NET Framework.

Bem, esta questão está se tornando bastante extensa, desculpe, mas espero que tenha dado uma idéia do meu objetivo.

Agora, simplesmente colocando, eu quero assistir aoConnected propriedade doSocket classe e quando o valor dele muda, disparar um evento. E se fosse possível também usar essa abordagem para observar variáveis ​​e propriedades, seria incrível, não apenas para mim, mas para todos que se depararem com essa questão no SO.

Uma abordagem simples e leve é ​​preferida, é claro, mas acima de tudo, eu quero entender como isso pode ser feito, então no futuro eu posso aplicá-lo em escala de massa para outras classes.

Eu percebo que estou pedindo muito. Muito Obrigado.

Qualquer dúvida é só perguntar.

questionAnswers(2)

yourAnswerToTheQuestion