2016-06-05 8 views
-1

Ich habe 2 Assembly sollte aus dem Speicher geladen werden, verwende ich den folgenden Code, um es zu implementieren, aber es kann nicht funktionieren. Hilf mir, Danke!C# mit Assembly.Load zum Laden Multiplizier-Baugruppe aus dem Speicher

 Assembly.Load(File.ReadAllBytes("b.dll")); 
     var assembly = Assembly.Load(File.ReadAllBytes("a.dll"));//a.dll referenced b.dll 
     var type = assembly.GetTypes().First(p => p.FullName == "Namespace1.Type1"); 
     type.GetMethod("StaticMethod1", BindingFlags.Static | BindingFlags.Public).Invoke(null, new object[] { });//it throw an exception, can't load file or assembly b.dll 

Antwort

0

Assembly.Load Mit einer Baugruppe aus einem Byte-Array zu laden, lädt die Baugruppe aber nicht registriert es unter seinem Namen in der Anwendungsdomäne. Um eine eigene Assembly aus einem Bytearray bereitzustellen, wenn die Laufzeitumgebung versucht, eine bestimmte Assembly mit einem bestimmten Namen zu laden, implementieren Sie das Ereignis AppDomain.AssemblyResolve.

Siehe zum Beispiel Code this question and the answer.

Verwandte Themen