2012-11-02 54 views
1

我可以发誓有几个关于这方面的教程,但我似乎无法找到它们,并且不记得我是如何做到的(过去几年和不同的公司)...如何编写应用程序以允许插件?

我将在C#中工作。我想我所做的就是创建一个界面,其中包含应用程序和插件所需的属性/方法来回传递...

运行该应用程序并扫描插件的文件夹,加载插件并与之交互它通过前面提到的接口...

如果上述是在正确的轨道上,有人可以指向我加载插件或更好的示例,教程?

谢谢!

+0

下面是示例: http://stackoverflow.com/questions/12055308/vb-net-dynamic-plugin-components/12058493#12058493 –

+0

我同意花钱,你应该看一看MEF。查看导出元数据功能,可以用它来发现插件而不用实际激活它们。 –

回答

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软件包可以为你做很多工作,这取决于你的用例,它们可能非常有用或者只是矫枉过正。

+0

谢谢!正是我正在寻找的! –

相关问题