2009-08-19 11 views

Antwort

-1

Warum nicht ein Dependency Injection-Framework wie Unity oder Spring.NET für so etwas nutzen? Das Konfigurieren der zu ladenden Datei kann ziemlich einfach durchgeführt werden.

Oder vielleicht laden Sie YourAssembly1.dll (v1.2) und haben Sie ihre Funktionalität zu YourAssembly2.dll zu delegieren?

+0

Hilft nicht, wenn Sie keine Kontrolle über den initiierenden Prozess haben. – Ryan

+1

Danke für die Klärung Ihrer Frage. Versuchen Sie meine neue Antwort auf die Post. –

1

Dies sollte nicht möglich sein, da Ihre eigene Anwendung einen Verweis auf hat.

Wenn die Runtime Ihre Anwendung lädt, versucht sie, eine Assembly YourAssembly1.dll zu laden (mit Sondierungs- und Versionsumleitungen) und kann daher die Assembly YourAssembly2 nicht laden.

5

Wenn ich mich richtig erinnere, habe ich dies vor etwa 4 Jahren mit der AppDomain.AssemblyResolve event getan. Die Idee ist, dass Sie die AssemblyName-Anforderung erhalten und eine Assembly zurückgeben. In einigen Fällen war ich sogar in der Lage, DynamicAssembly zur Laufzeit zu generieren und das zu injizieren. Ich vergesse, welche Auswirkungen starke Namensgebung darauf hat.