2010-03-05 116 views
2

我正在C#中開發一個項目,它是關於電子學習的。該項目應該使用插件作爲主要輸入,沒有它們就無法運行。 我不知道如何使用插件,我不知道如何在我的程序中編譯插件,或者如何在應用程序中安裝插件。 我在這裏詢問有關參考資料,或任何有用的想法,可以幫助我。在C#中爲我自己的項目創建我自己的插件

+0

使用MEF,看上去很不錯的類型。 http://www.codeplex.com/MEF – 2010-03-05 15:11:49

+0

也有Mono.Addins:http://www.mono-project.com/Mono.Addins – Emmanuel 2010-03-05 15:17:46

回答

3

開始通過創建一個插件接口:

public interface IPlugIn 
{ 
    // Your stuff here 
} 

然後,您可以發佈你的界面上的插件工作的開發人員。

當您的應用程序啓動時,它可以動態加載所有插件程序集,然後通過IPlugIn接口使用它們,而無需知道每個插件的內部。

UPDATE

事實上,我發現,進入我更深入更ellaborate例中描述的處理的製品。您可以點擊此處查看:

Writing Plugin-Based Applications in .NET

和一個額外的好處......它帶有示例代碼!

+0

非常感謝我想我會用這個簡單的方法,如果你有更多的經驗或參考資料,請讓我知道,再次感謝:) – Lisa 2010-03-14 23:53:48

2

如果你的插件不太複雜,你可以避免使用像MEF這樣的可擴展性框架。

  1. 您可以爲插件定義合同。它應該是公共接口,或者可以是抽象/虛擬方法的類。您應該將其移動到獨立的程序集並分發給插件開發人員
  2. 開發人員實現接口並生成程序集
  3. 使用Assembly.Load在運行時加載。
  4. 列表類型由GetTypes
  5. 找到實現你的接口
  6. Activator.CreateInstance
  7. 玩得開心
相關問題