【发布时间】:2014-10-27 04:27:05
【问题描述】:
我有以下课程
Public Class SimpleClass
Public Event SimpleEvent()
Public Sub SimpleMethod()
RaiseEvent SimpleEvent()
End Sub
End Class
我把它实例化了
Obj = New SimpleClass
AddHandler Obj.SimpleEvent, Sub()
MsgBox("Hi !")
End Sub
我正在尝试删除使用以下代码动态创建的事件处理程序:Code Project
(我假设一个复杂的应用程序很难使用:RemoveHandler Obj.Event, AddressOf Me.EventHandler)
在他们的代码中有如下方法
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
但是当使用我的对象类型调用这段代码时,下一行什么也不返回
Dim fi As FieldInfo = dt.GetField(ei.Name, AllBindings)
表示不知何故我的事件未被识别为字段。
有谁知道如何从事件中删除所有事件处理程序?
提前干杯。
【问题讨论】:
标签: vb.net reflection