Ich hab hier nem einfaches .NET Project angefangen, welche dynamisch Assemblies (DLL´s) lädt und mir den nen Wert per Methode ausgeben lassen soll, mehr nicht.
Wo es hängt ist beim typecast, nachdem ich die Instanz erstellt habe.
Hier mal code dazu: (Sry VB.NET, aber spielt keine rolle bei .NET !)
Library Basis Interface: (Wird benutzt von der Anwendung und der Assembly, sind in beiden Projekten 1:1 gleich)
Code:
Public Interface ILibImport
Function GetName() As String
End Interface
Assembly: (Klassenbibliothek)
Code:
Public Class ImportLib
Implements ILibImport
Function GetName() As String Implements ILibImport.GetName
Return "Import Library 1"
End Function
End Class
Anwendung: (Windows-Anwendung)
Code:
Public Class frmMain
Public AppPath As String
Public LibsPath As String
Private Sub RefreshLibs()
Dim aLibFiles() As String = System.IO.Directory.GetFiles(LibsPath, "*.dll")
For i As Integer = 0 To aLibFiles.Length - 1
Dim OneImportLibAssembly As Reflection.Assembly = Reflection.Assembly.LoadFrom(aLibFiles(i))
Dim ShortAssemblyName As String = OneImportLibAssembly.FullName
Dim CommaPos As Integer = ShortAssemblyName.IndexOf(",")
Das Interface ILibImport muss in eine gemeinsame Assembly. Jedenfalls darf es nur einmal deklariert werden. Typen gelten nur als identisch, wenn sie auch aus der gleichen Assembly sind.
Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste
Du darfst keine neuen Themen in diesem Forum erstellen. Du darfst keine Antworten zu Themen in diesem Forum erstellen. Du darfst deine Beiträge in diesem Forum nicht ändern. Du darfst deine Beiträge in diesem Forum nicht löschen. Du darfst keine Dateianhänge in diesem Forum erstellen.