System.Configuration.ConfigurationManager如何找到App.config?

时间:2017-08-08 22:00:28

标签: c# .net configurationmanager

我的问题有些抽象,特别是关于ConfigurationManager.GetSection()使用的探测路径。我在the documentation中没有看到任何解决我问题的注释,我希望这种格式不会太模糊。

  

如何确定/控制哪个目录ConfigurationManager将探测app.config?

抽象背景

考虑测试情况,其中

  • 测试程序集包含App.config。
  • 测试程序集使用ConfigurationManager填充预期的配置值。
  • 正在测试的程序集 没有app.config。
  • 正在测试的程序集 也使用ConfigurationManager来查找值。
  • 测试从包含两个感兴趣的程序集的目录执行。
  • 测试从包含感兴趣的App.config的目录执行。

当我接近这个设置时,我预计ConfigurationManager会探测/bin - 执行我的测试的目录。

然而,我正在通过调试来观察

1)在测试程序集的代码中,ConfigurationManager返回我预期的部分。

2)在正在测试的程序集的代码中,ConfigurationManager正在返回Nothing

3)对ConfigurationManager.GetSection的两次调用都传递了相同的部分名称。

这告诉我代码正在寻找配置值的其他地方。我猜它是由命名空间控制的呢?我很难找到GetSection使用的探测路径的任何明确陈述,超出

  

此方法检索通过合并 应用程序配置文件获得的配置文件...

这表明它正在使用MyTestingAssembly.dll.config,但我的观察与这种理解相冲突。

问题

如何确定/控制ConfigurationManager将提取值的目录?

0 个答案:

没有答案