我的app.config文件有什么问题?

Bes*_*ska 18 .net app-config

我有一个app.config文件,如下所示:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <appSettings>
    <add key="TestKey" value="TestValue" />
  </appSettings>
  <newSection>
  </newSection>
</configuration>
Run Code Online (Sandbox Code Playgroud)

而我正试图以这种方式使用它:

System.Configuration.ConfigurationFileMap fileMap = new ConfigurationFileMap(@"C:\app.config");  
System.Configuration.Configuration configuration = System.Configuration.ConfigurationManager.OpenMappedMachineConfiguration(fileMap); 
Run Code Online (Sandbox Code Playgroud)

但是,它似乎没有起作用.当我在读入文件后立即进行中断和调试时,我试着看看configuration.AppSettings我得到了一个'configuration.AppSettings' threw an exception of type 'System.InvalidCastException'.

我确定我正在读取文件,因为当我查看configuration.Sections ["newSection"]时,我返回一个空{System.Configuration.DefaultSection}(而不是null).

我猜我有一些非常基本的错误...... AppSettings会发生什么?

GTG*_*GTG 17

您使用错误的函数来读取app.config.OpenMappedMachineConfiguration用于打开machine.config文件,但您打开的是典型的application.exe.config文件.以下代码将读取您的app.config并返回您期望的内容.

    System.Configuration.ExeConfigurationFileMap fileMap = new ExeConfigurationFileMap();
    fileMap.ExeConfigFilename = @"C:\app.config";
    System.Configuration.Configuration configuration = System.Configuration.ConfigurationManager.OpenMappedExeConfiguration(fileMap, ConfigurationUserLevel.None);
    MessageBox.Show(configuration.AppSettings.Settings["TestKey"].Value);
Run Code Online (Sandbox Code Playgroud)