【发布时间】:2012-02-19 14:40:55
【问题描述】:
我们已经开始使用 prism 构建模块化 wpf 应用程序。
我们希望每个模块都有特定的配置——应用设置/连接字符串等。
我们目前已通过将 shell 项目中的所有配置指定为短期修复来解决问题。显然,这打破了我们正在寻找的模块化方法 - 谁能指出我正确的方向?
谢谢。
【问题讨论】:
标签: c# wpf configuration module prism
我们已经开始使用 prism 构建模块化 wpf 应用程序。
我们希望每个模块都有特定的配置——应用设置/连接字符串等。
我们目前已通过将 shell 项目中的所有配置指定为短期修复来解决问题。显然,这打破了我们正在寻找的模块化方法 - 谁能指出我正确的方向?
谢谢。
【问题讨论】:
标签: c# wpf configuration module prism
您可以尝试将每个特定模块的 app.config 重命名为 YourModule.Name.config 之类的名称,并使用以下代码将该文件加载到您的模块中:
var filename = Assembly.GetExecutingAssembly().Location;
var configuration = ConfigurationManager.OpenExeConfiguration(filename);
if (configuration != null)
_setting = configuration.AppSettings.Settings["SettingName"].Value;
也许你应该玩一些文件名(比如最后添加.config),我现在无法检查。
【讨论】:
在您的基础架构项目中有一个接口 IConfigurationManager。创建一个 ConfigurationManger 项目,该项目可以处理与配置文件中的模块相对应的设置部分。在您的应用程序中使用 IConfigurationManager 注册此配置管理器。对于每个模块,您都可以注入配置管理器实例并读取/写入配置值。
class MyModule(IConfigurationManager config, ....)
{
}
【讨论】:
我写了一篇博客文章来解决您试图解决的类似问题。 希望对您有所帮助。
http://www.thedailyomelette.com/2013/02/maintain-multiple-configs.html
【讨论】: