2011-05-23 24 views
0

這裏是我的問題的故事:C#,如何使用外部文件作爲可選模塊?

我有一個.Net(C#)窗口應用程序。這個應用程序包含一個面板,一個下拉菜單和一個按鈕。

我的可執行文件(winapp ... exe)附近有一個名爲plugins的文件夾,我希望它包含我的自定義程序模塊文件。像(add2digit.moduleextention,add3digit.moduleextention,addNdigit.moduleextention,...)。這些文件的列表將顯示在我的下拉列表中。所有這些自定義模塊文件都需要用C#編寫,並且所有必須實現的接口都包含一個方法{panel :: GetGUI()};

當我改變下拉菜單時,我希望使用它的GetUI()方法將選定的模塊GUI加載到面板中。通過這種方式,我不需要重新編譯我的代碼,如果我開發更多的模塊。請給我一些關鍵字或解決方案,幫助我解決這個問題。

回答

2

你需要創建它聲明的InterfaceGetUI()等方法和實施中的插件,然後在主應用程序,你應該做這樣的事情:

using System.Reflection; 
// ... 
Assembly assembly = Assembly.LoadFile(file); 
yourInterface plugin = (yourInterface)Activator.CreateInstance(Type.GetType(assembly)); 
// ... 
plugin.GetUI(); // or whatever 
+0

那麼什麼類型的文件應是我的插件文件?我可以使用.dll文件嗎? – 2011-05-23 08:48:47

+0

是的,你可以使用dll文件。 – fardjad 2011-05-23 08:54:42

+0

我會說dll文件是最合乎邏輯的,如果不是這裏唯一的選擇。 – 2011-05-23 11:00:16

相關問題