C#从任意位置打开配置文件

时间:2016-05-05 17:45:44

标签: c# configurationmanager

目前:

Using ConfigurationManager to load config from an arbitrary location 我发现了什么似乎是一个解决方案。我正在处理的项目使用网络上的appSettings.config文件位置。但是当我尝试使用引用的代码时:

 System.Configuration.ConfigurationFileMap fileMap = new ConfigurationFileMap("Z:\Settings\appSettings.config"); //Path to your config file

 System.Configuration.Configuration configuration = System.Configuration.ConfigurationManager.OpenMappedMachineConfiguration(fileMap);

到目前为止一切顺利。 appSettings.config文件如下所示:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <appSettings>
    <add key="Environment" value="Development" />
  </appSettings>
</configuration>

然后我进入以下这一行:

var settings = configuration.AppSettings.Settings;

或使用它的任何东西,比如Settings.Count,我得到一个无效的强制转换异常。基本上,我如何从中获得“环境”的价值?

1 个答案:

答案 0 :(得分:6)

我发现这有效:

System.Configuration.ExeConfigurationFileMap fileMap = new ExeConfigurationFileMap();

fileMap.ExeConfigFilename = @"Z:\appSettings.config"; //Path to your config file

System.Configuration.Configuration configuration = System.Configuration.ConfigurationManager.OpenMappedExeConfiguration(fileMap, ConfigurationUserLevel.None); // OpenMappedMachineConfiguration(fileMap);
return configuration.AppSettings.Settings["Environment"].Value;

这没有错误。