いくつかの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")
しかし、私はそれほど遠くまで行きませんでした...これについて何か助けはありますか?