c#using Assembly.Load从内存加载多个程序集

时间:2016-06-05 12:47:02

标签: c# .net-assembly

我应该从内存加载2个程序集,我使用下面的代码来实现它但是它无法工作。帮帮我,谢谢!

        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

1 个答案:

答案 0 :(得分:0)

使用Assembly.Load从字节数组加载程序集,加载程序集但不在应用程序域中的名称下注册它。为了在运行时希望加载具有特定名称的特定程序集时从字节数组中提供自己的程序集,可以实现AppDomain.AssemblyResolve事件。

请参阅this question and the answer代码示例。