2012-11-02 90 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

謝謝!正是我正在尋找的! –

相關問題