棱镜模块app.config配置设置

3
我们已经开始使用Prism构建了一个模块化的WPF应用程序。
我们希望允许每个模块具有特定的配置 - 应用程序设置/连接字符串等。
目前,我们通过在外壳项目中指定所有配置来使事情正常运作,以此作为短期解决方案。显然,这破坏了我们正在寻找的模块化方法 - 有人能给我指点方向吗?
谢谢。
3个回答

3
你可以尝试为每个特定的模块重命名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”),目前我无法进行检查。

抱歉回复晚了,非常感谢,这个方法有效。只是惊讶地发现,在 Prism 的文档中没有更多提及这个。 - obaylis

0
在您的基础设施项目中,创建一个名为IConfigurationManager的接口。创建一个ConfigurationManager项目,可以处理配置文件中与模块对应的设置部分。将此配置管理器注册到应用程序中的IConfigurationManager中。对于每个模块,注入配置管理器实例并读取/写入配置值。
class MyModule(IConfigurationManager config, ....)
{
}

0

1
在这里发布你的答案总是比给出那些将来可能会消失的博客链接更好。 - Daniel Vygolov
6
猜猜看 - 这个链接现在已经失效了。我很想读这个答案。 - Frank Monroe

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