Klasse (*.dll) via Pfad einbinden?

  • Allgemein

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von ~blaze~.

    Klasse (*.dll) via Pfad einbinden?

    Hi,

    ich möchte anhand des Dateipfades, dass die DLL, die dort mit Namen X, Y und/oder Z liegt, eingebunden wird. Also, dass ich es halt nicht manuell einbinden/hinzufügen muss, sondern bspw einen Pfad im Code angebe, und die Datei, auf die mit dem Pfad navigiert wird, wird in das Projekt eingebunden. Wie stelle ich das am besten an?

    Danke im Voraus für die Hilfe!
    Hi
    der Code zeigt, wie man's nicht macht. ;) Man sollte grundsätzlich Klassen verwenden, damit die Semantik in einem Code klar ist. Ein String beschreibt zwar normalerweise die Funktionsweise einer Methode, aber eben nicht eindeutig. Bei Klassen oder, für statische Sachen, Attributen, die auf Klassen verweisen, ist die Bedeutung exakt definiert.
    Wenn der Code direkt in deiner Anwendung liegt und du nur die Suchpfade manuell für die Dll festlegen willst, geht das irgendwie im Manifest. Wenn die Dll dynamisch geladen werden soll, kannst du System.Reflection.Assembly.LoadFrom verwenden. Die Instanzierung von Klassen in der Assembly musst du dann aber selber übernehmen.
    Wozu dient die Assembly in deinem Szenario?

    Gruß
    ~blaze~
    Je genauer ich mir den Code anschau, desto mehr bin ich davon überzeugt, dass es so nicht geht:
    - ArrayList (keine Generika => List(Of T))
    - Call by name (s.o.)
    - LoadFile statt LoadFrom (msdn.microsoft.com/en-us/library/b61s44e8.aspx, Remarks)
    - Instanzierung durch den vordefinierten Klassennamen (==> Attribut auf Assembly, das auf einen Provider zeigt, der die Plug-Ins in einem Plug-In-Manager registriert oder einfach ein PlugInAttribute auf allen Plug-Ins und gemeinsamen Basis-Typen/Schnittstellen oder anderer semantischer Zuordnung)

    Gruß
    ~blaze~