3

在我当前的项目中,我们有一个带有一些配置(app.config、自定义 ConfigurationSection 等)的 .NET 控制台应用程序。在配置中,指定了本地文件系统上文件的多个路径。由于各个开发人员机器上的路径可能不同,我希望在 machine.config 中而不是在 app.config 中指定它们,因此每个开发人员都可以用自己的路径“覆盖”它们。

所以在 app.config 我注册了 configSection(元素'configSections'),但在配置部分我没有定义路径。在 machine.config 中,我注册了 configSection 并将 configSection 添加到我的路径中。

它看起来像这样:

应用程序配置:

<configSections>
  <section name="importingExec" 
           type="ImportingExecutableConfigSection, Executable" />
</configSections>

<importingExec>
  <!-- xmlSchema xmlSchemaPath="D:\foo.xsd"/ -->
</importingExec>

机器配置:

<configSections>
  <section name="importingExec" 
           type="ImportingExecutableConfigSection, Executable" />
</configSections>

<importingExec>
  <xmlSchema xmlSchemaPath="D:\foo.xsd"/>
</importingExec>

我有以下问题:当我检索配置时,由于缺少配置部分(必需!)而引发异常。我预计 machine.config 中的值将被返回!

PS:我通过调用检索配置部分

ConfigurationManager
    .OpenExeConfiguration(ConfigurationUserLevel.None)
    .GetSection("importingExec");
4

1 回答 1

1

You are explicitly requesting the exe's config file by using that code.

You should use

ConfigurationManager.GetSection("importingExec")

in order to get the merged files.

Cheers Chris

于 2012-11-22T14:55:30.343 回答