Wie entferne ich alle Event-Handler von einem Event?
Ich habe die folgende Klasse
Public Class SimpleClass
Public Event SimpleEvent()
Public Sub SimpleMethod()
RaiseEvent SimpleEvent()
End Sub
End Class
Ich instanziiere es wie
Obj = New SimpleClass
AddHandler Obj.SimpleEvent, Sub()
MsgBox("Hi !")
End Sub
Und ich versuche, den Ereignishandler zu entfernen, der mithilfe des Codes in dynamisch erstellt wurde:Code Project
(Ich gehe von einer komplexen Anwendung aus, deren Verwendung schwierig ist:RemoveHandler Obj.Event, AddressOf Me.EventHandler)
In ihrem Code gibt es die folgende Methode
Private Shared Sub BuildEventFields(t As Type, lst As List(Of FieldInfo))
For Each ei As EventInfo In t.GetEvents(AllBindings)
Dim dt As Type = ei.DeclaringType
Dim fi As FieldInfo = dt.GetField(ei.Name, AllBindings)
If fi IsNot Nothing Then
lst.Add(fi)
End If
Next
End Sub
Aber wenn ich diesen Code mit meinem Objekttyp aufrufe, gibt die nächste Zeile nichts zurück
Dim fi As FieldInfo = dt.GetField(ei.Name, AllBindings)
bedeutet, dass mein Ereignis irgendwie nicht als Feld erkannt wird.
Weiß jemand, wie man alle Event-Handler aus einem Event entfernt?
Cheers im Voraus.