tomar las siguientes clases C#:¿Cómo puedo borrar las suscripciones de eventos en C#?
c1 {
event EventHandler someEvent;
}
Si hay una gran cantidad de suscripciones a someEvent
caso c1
's y quiero aclarar a todos, ¿cuál es la mejor manera de lograr esto? Considere también que las suscripciones a este evento podrían ser delegados lambdas/anónimos.
Actualmente mi solución es añadir un método ResetSubscriptions()
-c1
que establece someEvent
en nulo. No sé si esto tiene consecuencias no vistas.
¡Oh, las maravillas de la programación orientada a objetos. –
Si eres obstinado, puedes forzarlo a despejarlo mediante la reflexión. Consulte http://stackoverflow.com/questions/91778/how-to-remove-all-event-handlers-from-a-control/91853#91853. – Brian
@Brian: depende de la implementación. Si es * solo * un evento parecido a un campo o un 'EventHandlerList', es posible que puedas. Sin embargo, habría que reconocer esos dos casos, y podría haber muchas otras implementaciones. –