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
答案 0 :(得分:0)
使用Assembly.Load
从字节数组加载程序集,加载程序集但不在应用程序域中的名称下注册它。为了在运行时希望加载具有特定名称的特定程序集时从字节数组中提供自己的程序集,可以实现AppDomain.AssemblyResolve
事件。
请参阅this question and the answer代码示例。