2008-11-15 30 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对象。