Forums Neueste Beiträge
 

Assembly laden

07/11/2009 - 14:50 von Timo Ahrends | Report spam
Moin zusammen,

kann man aus einer per Code geladenen Assembly nicht noch eine per Code
laden?

Beispiel:
Es gibt Assembly A, B und C.
Assembly C verwendet Typen von B
und B verwendet Typen von A.

Nun lade ich mit Assembly A per Assembly.LoadFile() B
und instanziere einen Typ in B und führe eine Methode darin aus,
welche mit .LoadFile() Assembly C làdt.
Wenn dann ein .GetTypes der Assembly C folgt gibts eine
ReflectionTypeLoadException.

Nochmal kurz zur Verdeutlichung:
A làdt B per Assembly.LoadFile(...)
-> A instanziert Typ aus B (Typ wurde mit .GetTypes der Assembly ermittelt)
-> <Typ aus B>.Init()
-> Funktion làdt C per Assembly.LoadFile(...)
-> Bei Asm.GetTypes -> Exception

Ich hoffe das ist einigermaßen verstàndlich...

mfg
T. Ahrends
 

Lesen sie die antworten

#1 Elmar Boye
07/11/2009 - 16:55 | Warnen spam
Hallo Timo,

"Timo Ahrends" schrieb ...
kann man aus einer per Code geladenen Assembly nicht noch eine per Code laden?




Man kann...

Nun lade ich mit Assembly A per Assembly.LoadFile() B
und instanziere einen Typ in B und führe eine Methode darin aus,
welche mit .LoadFile() Assembly C làdt.
Wenn dann ein .GetTypes der Assembly C folgt gibts eine
ReflectionTypeLoadException.



... nur muß man bei LoadFile viel selbst machen.
Siehe http://blogs.msdn.com/suzcook/archi...57143.aspx

und http://blogs.msdn.com/suzcook/archi...dfrom.aspx

Gruß Elmar

Ähnliche fragen