代码之家  ›  专栏  ›  技术社区  ›  Robert Rossney

如何让ConfigurationManager从多个文件加载应用程序设置?

  •  7
  • Robert Rossney  · 技术社区  · 15 年前

    ConfigurationManager

    这意味着什么:他们的计划, foo.exe ,电话 fooengine.dll foo.exe.config . 我的节目,, bar.exe ,亦称 fooengine.dll ,并从中读取其设置 bar.exe.config .

    嗯,那完全是错的。但我该如何修复它呢?

    简单的解决方法是复制 foo.exe.config 中的设置 bar.exe.config . 这行得通,但没问题 愚蠢的

    我试着放一个 configSource appSettings 在我的配置文件中。(碰巧,我正在使用 applicationSettings 我的设置部分,他们正在使用 应用程序设置 他们的部分,所以我可以简单地从另一个文件中获取该部分。) 不喜欢这样:它希望路径在 配置源 不仅相对,而且 在下面 我的程序目录。

    我可以将它们的设置文件物理读取到 XmlDocument 然后自己把它们放好。但现在我将我的代码与其实现紧密耦合;如果他们发布了一个新版本,将设置移动到 应用程序设置 部分(这是他们 应该 现在是2009年),我的密码会被破解。

    2 回复  |  直到 15 年前
        1
  •  3
  •   Robert Rossney    15 年前

    好吧,我想我已经找到了答案,至少对于我这个问题的具体版本。

    ConfigurationManager 支持 file 属性在 appSettings 要素这允许您从外部文件获取该元素的内容。所以我要做的是:

    1. 剪掉 应用程序设置 脱离 foo.exe.config appSettings.xml .

    2. foo.exe.config : <appSettings file="appSettings.xml"/>

    3. 将元素添加到 bar.exe.config : <appSettings file="c:\program files\foo\appSettings.xml"/>

    这很有效。但它只起作用,因为我的程序不使用 应用程序设置 完全

        2
  •  2
  •   Community CDub    7 年前
    推荐文章
    Liam  ·  C#AppSettings数组
    7 年前