2008-11-15 39 views
5

我正在編寫一個包含不同程序集中的插件系統的應用程序。在程序集間使用應用程序設置

問題是插件系統需要從主應用程序中獲取應用程序設置(如尋找插件的目錄)。

這是怎麼完成的,還是我以這種錯誤的方式去做?

編輯:我被鼓勵添加一些關於插件系統如何工作的細節。我還沒有完全解決這個問題,我只是開始實施它,但我基本上是通過this article

+0

您可能想要添加一些關於插件系統如何工作的細節。有很多不同的方式來處理主應用程序和插件之間的雙向通信。 – MusiGenesis 2008-11-15 22:48:12

回答

3

讓主應用程序從應用程序設置中獲取插件目錄並將其插入插件系統。

2

也許你可以在創建插件時插入配置作爲參數?

//Get the configuration for the current appDomain 
System.Configuration.Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); 

//Create the plugin, and pass in the configuration 
IPlugin myPlugin = new AlfaPlugin(config); 

您可能需要對System.Configuration程序集的引用。

+0

這正是我所說的...... – EricSchaefer 2008-11-15 23:07:04

1

您可以編寫自定義配置部分,該部分允許您編寫表示XML模式的對象。一旦建立,您可以簡單地詢問該部分的當前實例。

您可以通過從System.Configuration.ConfigurationSection派生並寫入代表屬性和子元素的屬性來完成此操作。有關更多信息,請參閱How to: Create Custom Configuration Sections Using ConfigurationSection

運行庫的AppDomain是當前的配置範圍。 System.Configuration命名空間將所有配置文件關聯起來,並呈現一個統一的視圖。

要檢索節的當前實例,可以使用ConfigurationManager.GetSection(...)

您的插件應該接受本節的一個實例,而不是一般的Configuration對象。