2个配置文件是如何相关的?

时间:2011-01-17 08:23:34

标签: .net configuration

我在看别人的C#代码。在项目中有一个 app.config 文件和一个 xxx.config 文件, AppSettings 包含在这两个文件中。但我没有看到任何ConfigureSource或构建事件。那么代码如何使用ConfigurationManager.AppSettings [“key”]访问两个文件中的设置?

感谢。

更多线索:

我检查了2个配置文件的属性,发现它们的构建操作都是“嵌入式资源”

答案揭晓!

也许我缺少一些上下文,这是一个Visual Studio单元测试项目。 app.config和xxx.config都作为资源嵌入,在测试初始化​​阶段,这些配置文件从资源中提取并写入 vstesthost.exe.Config ,由 VSTestHost.exe

我只是不知道究竟是谁能够发明这样一个非人类解决方案来处理配置。

2 个答案:

答案 0 :(得分:0)

ConfigurationManager.AppSettings [“key”]将从一个文件中获取一个值(来自app.config)。但是你可以在appSettings部分有2个文件,如果app.config“重定向”到第二个文件:

<appSettings file="settings.config" />

和第二个文件包含所有键。

Here你可以阅读更多

答案 1 :(得分:0)

您可以像这样合并appSettings:

<强>的app.config

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <appSettings file="xxx.config">
    <add key="foo" value="bar"/>
  </appSettings>
</configuration>

<强> xxx.config

<?xml version="1.0" encoding="utf-8" ?>
<appSettings>
  <add key="xxx" value="yyy"/>
</appSettings>

请注意,您必须将xxx.config的“复制到输出目录”属性设置为始终复制复制更新,因为xxx.config未复制到默认输出目录。