我有一个动态加载一些 dll 文件的 VB.NET 应用程序。所有插件都在一个文件夹中,我的应用程序从该文件夹加载所有 dll 文件。
为了加载 dll,我使用以下代码
_aAssembly = Reflection.Assembly.LoadFile(_File.FullName)
_aClass = _aAssembly.GetType(_AssemblyName & "." & ClassName)
_aAddin = Activator.CreateInstance(_aClass)
在此 dll 中运行方法
Function RunMethod(ByVal Method As String, Optional ByVal Paramter() As Object = Nothing) As Object
Dim aMethode As MethodInfo = _aClass.GetMethod(Method)
Return aMethode.Invoke(_aAddin, Paramter)
End Function
这很完美。但现在我想在我的 dll 文件中触发一个事件并在我的主应用程序中处理它们。我首先将以下代码添加到我的 dll 中:
Public Shared Event GotSomethingToSend(Str As String)
我用
RaiseEvent GotSomethingToSend(Str)
我的问题是我不知道如何在我的主应用程序中“捕捉”事件。甚至可能吗?我已经尝试过GetEvent()
:
Dim ei As EventInfo = _aAssembly.GetType(_AssemblyName & "." & ClassName).GetEvent("GotSomethingToSend")
但我没有走得很远......对此有任何帮助吗?