Eliminar todos los controladores de eventos de una sola vez

Problema: tengo una clase de documento que contiene una lista de objetos. Estos objetos plantean eventos comoSolutionExpired, DisplayExpired El documento necesita responder a esto.

Los documentos a veces pueden intercambiar objetos, pero un solo objeto nunca debe ser "parte" de más de un documento.

Mi clase de documento contiene un montón de métodos que sirven como controladores de eventos. Cada vez que un objeto entra en el documento, utilizoAddHandler para configurar los eventos, y siempre que se elimine un objeto del documento que usoRemoveHandler para deshacer el daño. Sin embargo, hay casos en los que es difícil asegurarse de que todos los pasos se tomen correctamente y, por lo tanto, podría terminar con manejadores de eventos deshonestos.

Larga historia corta; ¿Cómo elimino todos los controladores que apuntan a un método específico? Tenga en cuenta que no tengo una lista de posibles fuentes de eventos, que podrían almacenarse en cualquier lugar.

Algo como:

RemoveHandler *.SolutionExpired, AddressOf DefObj_SolutionExpired

Respuestas a la pregunta(3)

Su respuesta a la pregunta