如何在 .NET 的 app.config 中进行分层配置

Posted

技术标签:

【中文标题】如何在 .NET 的 app.config 中进行分层配置【英文标题】:How to do hierarchical configuration in .NET's app.config 【发布时间】:2010-09-22 05:43:02 【问题描述】:

app.config 配置部分很好,但我经常需要多个配置集,但差异很小。 我想要的是:

    有一个部分具有默认配置(这个部分是由设计器创建的,因此在 Settings 类中具有自动生成的强类型访问器 只有“新”项目的另一个部分,所有其他项目的值都来自原始部分。

(注意 - 将“其他部分”放在单独的文件中也很好,但这是一个不同的问题。)

编辑:应用程序是普通的可执行文件(或服务)——它不是网络服务。 另外,我知道有一个“machine.config”可以继承,但它太全球化了:它适用于所有应用程序

【问题讨论】:

【参考方案1】:

我认为您必须使用自定义处理程序来管理它。

第二部分很简单,因为您可以在原始配置文件中使用 configSource 属性来指向包含 xml 源的文件。

<system.serviceModel>
    <diagnostics>
      <messageLogging logMalformedMessages="true" logMessagesAtServiceLevel="true"
        logMessagesAtTransportLevel="true" />
    </diagnostics>
    <bindings configSource="web.shared.bindings.config" ></bindings>
    <client configSource="web.shared.client.config" ></client>    
</system.serviceModel>

下面是我们如何将部分 Service.ServiceModel XML 链接到我们的 Web Config 中,这样我们就可以将它们分开并轻松编辑。

【讨论】:

以上是关于如何在 .NET 的 app.config 中进行分层配置的主要内容,如果未能解决你的问题,请参考以下文章

在 VB.net 中,如何保存对 app.config 的更改

如何从 C# 读取 VB.NET 项目中的“app.config”文件

如何在我的 .NET App.Config 文件中存储 XML 值

C# 对 App.config的appSettings节点数据进行加密

我的 .NET 应用程序何时/如何使用其 App.Config 文件?

无法使用 ConfigurationManager 在 C# .NET Core 单元测试项目中读取 app.config