¿Cómo eliminar todos los controladores de eventos de un evento?
Tengo la siguiente clase
Public Class SimpleClass
Public Event SimpleEvent()
Public Sub SimpleMethod()
RaiseEvent SimpleEvent()
End Sub
End Class
Lo instancia como
Obj = New SimpleClass
AddHandler Obj.SimpleEvent, Sub()
MsgBox("Hi !")
End Sub
Y estoy tratando de eliminar el controlador de eventos creado dinámicamente usando el código en:Proyecto de código
(Asumo una aplicación compleja donde es difícil de usar:RemoveHandler Obj.Event, AddressOf Me.EventHandler)
En su código hay el siguiente método
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
Pero al llamar a este código usando mi tipo de objeto, la siguiente línea no devuelve nada
Dim fi As FieldInfo = dt.GetField(ei.Name, AllBindings)
significa que de alguna manera mi evento no se reconoce como un campo.
¿Alguien sabe cómo eliminar todos los controladores de eventos de un evento?
Saludos de antemano.