Wie kann ich vermeiden, laden eine assembly dynamisch, dass ich bereits geladen haben mit der Spiegelung?
Ich bin laden Baugruppen mit Montage.LoadFile(assemblyFilePath) in einer Schleife und möchte ich vermeiden aufrufenden Assembly.LoadFile wenn die Versammlung hat bereits einmal geladen werden. Sollte ich besorgt über die aufrufenden Assembly.LoadFile wiederholt für eine DLL, die bereits geladen wurde? Danke.
- Load() und LoadFile() lädt assembiles in verschiedenen Kontexten. Warum verwenden Sie LoadFile (), wenn Sie in einem Ordner, die gefunden werden könnten, einfach durch den assembly-Namen? Siehe diesen Artikel: blogs.msdn.com/b/suzcook/archive/2003/09/19/... blogs.msdn.com/b/suzcook/archive/2003/05/29/57143.aspx
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nein, Sie brauchen nicht besorgt zu sein, weil wenn eine assembly bereits geladen wurde, wird es nicht erneut geladen
Wenn Sie Assembly aufrufen.LoadFile() können Sie dann laden Sie die gleiche Baugruppe mehrere Male, aber nur, wenn Sie laden der assembly von anderen Weg jedes mal. Sie können Montage.Load() das laden einer Baugruppe nur einmal. Sie können auch finden über bereits geladene Assemblys in der aktuellen app-Domäne verwenden
Für die gegebene AppDomain, in der Sie anrufen können
GetAssemblies
und sehen, ob es geladen ist.