跨程序集使用应用程序设置

5
我正在编写一个应用程序,其中包括一个不同程序集中的插件系统。
问题在于插件系统需要从主应用程序获取应用程序设置(例如查找插件的目录)。
这该如何实现,或者我是在错误的路径上进行?
编辑:我被鼓励添加一些关于插件系统如何工作的细节。我还没有完全解决这个问题,我只是刚开始实施它,但基本上我是按照this article的方法去做的。

你可能想添加一些关于插件系统如何工作的细节。在主应用程序和插件之间处理双向通信有许多不同的方法。 - MusiGenesis
3个回答

3

让主应用程序从应用程序设置中获取插件目录并将其推送到插件系统。


2
您可以编写自定义配置部分,允许您编写表示XML模式的对象。一旦建立,您只需请求该部分的当前实例即可。
您可以通过从System.Configuration.ConfigurationSection继承并编写表示属性和子元素的属性来实现此目的。有关更多信息,请参见如何使用ConfigurationSection创建自定义配置部分
库所在的AppDomain是当前配置作用域。 System.Configuration命名空间协调所有配置文件并呈现统一视图。
要检索部分的当前实例,可以使用ConfigurationManager.GetSection(...)
您的插件应该接受此部分的实例,而不是通用的Configuration对象。

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 组件。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接