我本来可以发誓这里有几个教程,但我似乎无法找到它们,也不记得我过去是怎么做的(多年来和不同的公司一起)...
我将在C#工作。我认为我所做的是创建一个界面,其中包含应用程序所需的属性/方法以及插件来回通信...
运行应用程序,扫描插件的文件夹,加载插件并通过前面提到的界面与之交互......
如果以上是正确的轨道,有人可以指出我加载插件或更好的示例,教程吗?
谢谢!
答案 0 :(得分:2)
有很多方法,但很简单:
扫描文件夹:
string[] files = System.IO.Directory.GetFiles("yourpath", "*.dll");
然后加载程序集(对于上面的每个文件)
Assembly.Load or Assembly.LoadFrom
从汇编到枚举类型:
Type[] types = assembly.GetTypes();
检查类型是否实现了您的界面
Type t;
YourInterface.IsAssignableFrom(t);
然后实现:
object o = Activator.CreateInstance(t);
YourInterface iface = (YourInterface)o;
就是这样,当然会忽略异常处理和其他位
某些DI软件包可以为您完成大量工作,具体取决于您的用例,它们可能非常有用或者只是过度使用。
答案 1 :(得分:1)
可能值得一看Managed Extensibility Framework: