我从不同文件夹加载运行时的程序集。然后,我实例化包含特定接口typeof(I).IsAssignableFrom(xy)
但是,如果包含接口的程序集被错误加载(因为有人将其放在其中一个文件夹中),则不会加载任何类型。我假设因为与接口类型不匹配。我真的不明白为什么,因为 .dlls 是完全相同的。
此外,还有一种解决此问题的好方法(我无法在没有Assembly.LoadFrom
的情况下获得强名称)
其他信息: 举个例子: program.exe有一个dll依赖的interfacedefinition.dll
在这个程序的子文件夹中是一个名为“loading.dll”的dll。
如果两者中都存在interfacedefinition.dll,则包含program.exe的主文件夹和包含loading.dll的子文件夹会出现所描述的问题
答案 0 :(得分:0)
然后,您应该通过保持List<string>
来保存不应加载的程序集名称列表来阻止重新加载包含程序集。检查您要加载的程序集是否包含在List
中。