0
我有以下類如何從事件中刪除所有事件處理程序?
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)
意味着,不知我的事件沒有被識別爲一個場。
有誰知道如何從事件中刪除所有事件處理程序?
提前歡呼。
你搖滾的人!謝謝 ! – 2014-10-27 01:25:44