vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Mails senden, abrufen und decodieren - ganz easy ;-)  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
Plugins und Interfaces 
Autor: Maas
Datum: 04.07.09 15:25

Hallo Leute,
Ich probiere mich gerade in der Anwendung von Plugins. Dabei gibt es für mich so einige Probleme die auftauchen. Ich habe mal ein kleines Beispiel gemacht, um das Ganze zu verdeutlichen.
Es gibt drei Teile: PluginTest.exe(die Hauptanwendung), Plugin.dll(Defenition der Schnittstellen) und LabelPlugin.dll(das Plugin). PluginTest hat ein MenuItem(mnuPlugins) und zwei Labels, die über je ein Interface angesprochen werden sollen.
Hier mal der Code ...

IPlugin:
Imports System.Windows.Controls
 
Public Interface IPlugin
    ReadOnly Property PluginName() As String
    ReadOnly Property IsLoaded() As Boolean
    Sub Load()
    Sub Unload()
End Interface
 
Public Interface ILabel1
    Inherits IPlugin
    Property Lbl1() As Label
End Interface
 
Public Interface ILabel2
    Inherits IPlugin
    Property Lbl2() As Label
End Interface
LabelPlugin:
Imports Plugin
Imports System.Windows.Controls
 
Public Class Label1Plg
    Implements ILabel1
    Private mIsLoaded As Boolean = False
    Private mLabel As Label
    Public Property Lbl1() As System.Windows.Controls.Label Implements _
      Plugin.ILabel1.Lbl1
        Get
            Return mLabel
        End Get
        Set(ByVal value As System.Windows.Controls.Label)
            mLabel = value
        End Set
    End Property
    Public ReadOnly Property PluginName() As String Implements _
      Plugin.IPlugin.PluginName
        Get
            Return "Label1Plugin"
        End Get
    End Property
    Public ReadOnly Property IsLoaded() As Boolean Implements _
      Plugin.IPlugin.IsLoaded
        Get
            Return mIsLoaded
        End Get
    End Property
    Public Sub Load() Implements Plugin.IPlugin.Load
        mIsLoaded = True
        mLabel.Content = "TestString1"
    End Sub
    Public Sub Unload() Implements Plugin.IPlugin.Unload
        mIsLoaded = False
    End Sub
End Class
 
Public Class Label2Plg
    Implements ILabel2
    Private mIsLoaded As Boolean = False
    Private mLabel As Label
    Public Property Lbl2() As System.Windows.Controls.Label Implements _
      Plugin.ILabel2.Lbl2
        Get
            Return mLabel
        End Get
        Set(ByVal value As System.Windows.Controls.Label)
            mLabel = value
        End Set
    End Property
    Public ReadOnly Property PluginName() As String Implements _
      Plugin.IPlugin.PluginName
        Get
            Return "Label2Plugin"
        End Get
    End Property
    Public ReadOnly Property IsLoaded() As Boolean Implements _
      Plugin.IPlugin.IsLoaded
        Get
            Return mIsLoaded
        End Get
    End Property
    Public Sub Load() Implements Plugin.IPlugin.Load
        mIsLoaded = True
        mLabel.Content = "TestString2"
    End Sub
    Public Sub Unload() Implements Plugin.IPlugin.Unload
        mIsLoaded = False
    End Sub
End Class
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Plugins und Interfaces1.045Maas04.07.09 15:25
Re: Plugins und Interfaces708Maas04.07.09 15:26
Re: Plugins und Interfaces609ModeratorRalf Ehlert04.07.09 16:16
Re: Plugins und Interfaces614Maas04.07.09 18:37

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel