Problem: Ich habe eine Dokumentenklasse, die eine Liste von Objekten enthält. Diese Objekte lösen Ereignisse wie SolutionExpired
, DisplayExpired
usw. aus. Das Dokument muss darauf reagieren.
Dokumente können manchmal Objekte austauschen, aber ein einzelnes Objekt sollte niemals 'Teil' von mehr als einem Dokument sein.
Meine Dokumentenklasse enthält eine Reihe von Methoden, die als Ereignishandler dienen. Immer wenn ein Objekt in das Dokument eintritt, verwende ich AddHandler
, um die Ereignisse einzurichten, und wenn ein Objekt aus dem Dokument entfernt wird, verwende ich RemoveHandler
, um den Schaden rückgängig zu machen. Es gibt jedoch Fälle, in denen es schwierig ist sicherzustellen, dass alle Schritte ordnungsgemäß durchgeführt werden, und ich könnte daher mit rogue Ereignishandlern enden.
Langer Rede kurzer Sinn; wie entferne ich alle Handler, die auf eine bestimmte Methode zeigen? Beachten Sie, dass ich keine Liste potenzieller Ereignisquellen habe, diese könnten überall gespeichert sein.
So etwas wie:
RemoveHandler *.SolutionExpired, AddressOf DefObj_SolutionExpired
0 Stimmen
Mögliche Duplikat von Wie entferne ich alle Ereignishandler von einem Steuerelement
0 Stimmen
Möglicher Duplikat von Wie entferne ich alle Ereignishandler von einem Steuerelement