装配LoadFrom相同的装配不起作用

时间:2016-07-13 11:22:44

标签: c# .net reflection .net-assembly

我从不同文件夹加载运行时的程序集。然后,我实例化包含特定接口typeof(I).IsAssignableFrom(xy)

的所有类型

但是,如果包含接口的程序集被错误加载(因为有人将其放在其中一个文件夹中),则不会加载任何类型。我假设因为与接口类型不匹配。我真的不明白为什么,因为 .dlls 是完全相同的。

此外,还有一种解决此问题的好方法(我无法在没有Assembly.LoadFrom的情况下获得强名称)

其他信息: 举个例子: program.exe有一个dll依赖的interfacedefinition.dll

在这个程序的子文件夹中是一个名为“loading.dll”的dll。

如果两者中都存在interfacedefinition.dll,则包含program.exe的主文件夹和包含loading.dll的子文件夹会出现所描述的问题

1 个答案:

答案 0 :(得分:0)

然后,您应该通过保持List<string>来保存不应加载的程序集名称列表来阻止重新加载包含程序集。检查您要加载的程序集是否包含在List中。