【问题标题】:PRISM module app.config configuration settingsPRISM 模块 app.config 配置设置
【发布时间】:2012-02-19 14:40:55
【问题描述】:

我们已经开始使用 prism 构建模块化 wpf 应用程序。

我们希望每个模块都有特定的配置——应用设置/连接字符串等。

我们目前已通过将 shell 项目中的所有配置指定为短期修复来解决问题。显然,这打破了我们正在寻找的模块化方法 - 谁能指出我正确的方向?

谢谢。

【问题讨论】:

    标签: c# wpf configuration module prism


    【解决方案1】:

    您可以尝试将每个特定模块的 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),我现在无法检查。

    【讨论】:

    • 很抱歉回复晚了,但非常感谢,这行得通。令人惊讶的是,棱镜文档中没有更多提及。
    • @obaylis 你很高兴 :)
    【解决方案2】:

    在您的基础架构项目中有一个接口 IConfigurationManager。创建一个 ConfigurationManger 项目,该项目可以处理与配置文件中的模块相对应的设置部分。在您的应用程序中使用 IConfigurationManager 注册此配置管理器。对于每个模块,您都可以注入配置管理器实例并读取/写入配置值。

    class MyModule(IConfigurationManager config, ....)
    {
    }
    

    【讨论】:

      【解决方案3】:

      我写了一篇博客文章来解决您试图解决的类似问题。 希望对您有所帮助。

      http://www.thedailyomelette.com/2013/02/maintain-multiple-configs.html

      【讨论】:

      • 在这里发布您的答案总是比提供有一天会死的博客的链接更好。
      • 猜猜看 - 链接现在失效了。我很想阅读答案。
      猜你喜欢
      • 2014-01-18
      • 1970-01-01
      • 1970-01-01
      • 2014-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-15
      • 1970-01-01
      相关资源
      最近更新 更多