有没有办法在不使用dll = Assembly.LoadFile(@"c:\Test.dll");
的情况下从不同的项目/ .dll实例化基于它的名称并执行dll.CreateInstance(className);
我希望能够加载在我的应用程序中实现通用接口的不同类,而无需重新编译(类似于插件)。 dll位于应用程序路径中。
答案 0 :(得分:1)
您需要知道从以某种方式加载哪个程序集...然后您可以使用Type.GetType(name)
,其中您传递的名称也使用程序集名称限定。< / p>
答案 1 :(得分:0)
我认为除了只查找和打开目录中的每个Dll之外,没有任何方法可以基于类名或类实现的接口来查找Dll。您可以使用ReflectionOnlyLoad*
方法在查找正确的Dll时减少一些开销。