こんにちは、vb.net のインターフェイス クラスを使用してプラグイン アーキテクチャを作成する作業を行っています。これまでのところ、初心者向けの段階的なチュートリアルは見つかりませんでした。しかし、私はこれまでに得ました:
メインアプリ
Public Class PluginHandler
Interface IApplications
Sub ChangeForms()
End Interface
Public Shared Sub GetDLLFromDir(ByVal TheDir)
For Each dll As String In System.IO.Directory.GetFiles(TheDir, "*.dll")
LoadPlugin(dll)
Next
End Sub
Public Shared Sub LoadPlugin(ByVal ThePlugin)
Dim Asm = Assembly.LoadFile(ThePlugin)
Dim type As Type = Asm.GetType("TestPlugin.Class_TestPlugin")
Dim method As MethodInfo = type.GetMethod("ChangeForms")
method.Invoke(Nothing, Nothing)
End Sub
End Class
TestPlugin.vb
Public Class Class_TestPlugin
Implements Plugin_Application.PluginHandler.IApplications
Sub ChangeForms() Implements Plugin_Application. _
PluginHandler.IApplications.ChangeForms
Dim NewForm As New Form_Test
NewForm.Show()
End Sub
End Class
私の問題は、メソッドが呼び出すということです->非静的メソッドにはターゲットが必要です。メソッドが見つからない可能性があることを別のフォーラムで見ました。メソッド名と無効と書かれていることがわかりました。しかし、どうすればよいかわかりません。誰かが私のコードを機能するように変更したり、私のコードを機能させるためのアイデアを提供したりできれば. ありがとう :)
テスト プロジェクト フォルダへのリンクは次のとおりです。