Plugin kann nicht geladen werden

  • VB.NET

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von filmee24.

    Plugin kann nicht geladen werden

    hallo,
    ich habe mit hilfe von diesem tutorial: [VB.NET] Wie erstelle ich ein PlugIn System unter VB.NET (Framework 2)
    ein pluginsystem gemacht.

    Interface.dll

    VB.NET-Quellcode

    1. Public Interface PluginInterface_v1
    2. ReadOnly Property Name() As String
    3. End Interface

    plugin.dll

    VB.NET-Quellcode

    1. Public Class myClient
    2. Implements [interface].PluginInterface_v1
    3. Public ReadOnly Property Name As String Implements [interface].PluginInterface_v1.Name
    4. Get
    5. Return "kkk"
    6. End Get
    7. End Property
    8. End Class

    Hostprogramm

    VB.NET-Quellcode

    1. Public Class PlugInConnector
    2. Public Shared Function LoadPlugIn(ByVal strFile As String) As [interface].PluginInterface_v1
    3. Dim vPlugIn As [interface].PluginInterface_v1
    4. Dim a As System.Reflection.Assembly = System.Reflection.Assembly.LoadFile(strFile)
    5. Dim types() As Type = a.GetTypes
    6. For Each pType As Type In types
    7. 'hier wird versucht die dll zu laden.
    8. 'dies funktioniert nur, wenn die dll auch das selbe interface implementiert
    9. 'wie der host vorgiebt
    10. Try
    11. vPlugIn = CType(a.CreateInstance(pType.FullName), [interface].PluginInterface_v1)
    12. 'dll ist ein gültiges plugin
    13. Return vPlugIn
    14. Catch ex As Exception
    15. End Try
    16. Next
    17. 'keine gültige dll gefunden
    18. Return Nothing
    19. End Function
    20. End Class

    VB.NET-Quellcode

    1. Imports System.IO
    2. Public Class Form1
    3. Private myplugin As [interface].PluginInterface_v1
    4. Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
    5. Dim PlugIns As New List(Of [interface].PluginInterface_v1)
    6. For Each plug As String In Directory.GetFiles(Application.StartupPath & "\Plugins", "*.dll")
    7. Dim PlugIn As [interface].PluginInterface_v1 = PlugInConnector.LoadPlugIn(plug)
    8. If Not (PlugIn Is Nothing) Then
    9. PlugIns.Add(PlugIn)
    10. ListBox1.Items.Add(PlugIn.Name)
    11. End If
    12. Next
    13. If myplugin Is Nothing Then
    14. MessageBox.Show("Kein gültiges PlugIn gefunden !")
    15. Me.Close()
    16. End If
    17. End Sub
    18. End Class


    So wenn ich den Host öffne dann kommt die Meldung das keine gültien Plugins gefunden wurden, owohl das Plugin eigendlich korrekt is?
    kann mir da jemand helfen?

    mfg filmee24
    es hat noch nie geklappt?
    *edit jetz geht es, da war ein Fehler im Tutorial

    VB.NET-Quellcode

    1. If PlugIns.Count = 0 Then
    müsste es heißen, anstatt

    VB.NET-Quellcode

    1. If myplugin Is Nothing Then

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „filmee24“ ()