从代码中获取appSettings configSource

时间:2013-08-13 17:06:51

标签: c# .net config appsettings

有没有办法从代码中检索configSource?我创立了How to programmatically retrieve the configSource Location from config file,但所有答案都错了。

我有以下配置:

<configuration>
  <appSettings configSource="appsettings.config"/>
</configuration>

当我尝试调用以下代码时:

var config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
var file = config.AppSettings.File;

file始终为空。同样适用于ConfigurationManager.AppSettings["configSource"]。我认为在.NET 4中有些变化,因为答案是旧的。 我也试过了config.AppSettings.SectionInformation.ConfigSource,但它也是空的。

我需要此路径来启用appSettings的监控。您可以阅读更多内容:How to discover that appsettings changed in C#?

1 个答案:

答案 0 :(得分:3)

我有一些问题,但我终于找到了答案。

当配置文件如下所示:

<configuration>
  <appSettings file="appsettings.config"/>
</configuration>

上面的代码工作正常:

var config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
var file = config.AppSettings.File;

但是当配置文件是(它与上面相同但语法不同)时:

<configuration>
  <appSettings configSource="appsettings.config"/> <!-- configSource instead of file -->
</configuration>

我必须使用以下内容:

var config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
var file = config.AppSettings.SectionInformation.ConfigSource;

所以我必须检查config.AppSettings.SectionInformation.ConfigSourceconfig.AppSettings.File是不是空字符串并监视正确的字符串。