Assambly dynamisch in ein Projekt laden bzw. verweisen?



  • Hey Freaks,

    damit ich in Projekt A die Klassen etc. von Projket B verwenden kann, muss ich ja gezwungenermaßen in Projekt A auf die Klassenbibliothek B verweissen.

    Nun gibt es anscheinend ne möglichkeit (vom hören sagen) das man die Klassenbibliothek nich explizit verweisen muss, sonder zur laufzeit an A binden kann. geht das? Un welche grund sollte das haben?

    Grüße und Guten morgen;)



  • Wenn du Projekt A und Projekt B doch in einer Solution hast, dann referenzier sie einfach. Ansonsten kannst du Assembly.Load()/Assembly.LoadFrom() nuzten.

    Hier noch eine Blog zu Load()/LoadFrom(): http://blogs.msdn.com/suzcook/archive/2003/05/29/57143.aspx



  • ARRgggghhh schrieb:

    Hey Freaks,

    damit ich in Projekt A die Klassen etc. von Projket B verwenden kann, muss ich ja gezwungenermaßen in Projekt A auf die Klassenbibliothek B verweissen.

    Nun gibt es anscheinend ne möglichkeit (vom hören sagen) das man die Klassenbibliothek nich explizit verweisen muss, sonder zur laufzeit an A binden kann. geht das? Un welche grund sollte das haben?

    Grüße und Guten morgen;)

    Das geht. Du kannst zum Beispiel einen eigenen Auflösungsmechanismus implementieren, in dem Du einen event handler für das AppDomain.CurrentDomain.AssemblyResolve-Event implementierst. Dort kannst Du Deine Assembly wie's Dir passt per Assembly.LoadFile(path); laden und zurückgeben.

    Grund dafür kann sein, dass Du Deine Applikation zur Laufzeit konfigurieren willst und Assemblies austauschts ohne die Applikation komplett neu zu bauen/ausliefern.


Anmelden zum Antworten