如何在 .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