You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

读取MyTest.exe.config配置文件仅获键无值的问题求助

正确读取Exe配置文件AppSettings值的解决方案

问题出在你调用了appSettings[key].ToString(),KeyValueConfigurationElement类的默认ToString()方法返回的是类的完全限定名,而非配置项的实际值。你需要访问该对象的Value属性来获取对应配置值。

修改后的遍历读取代码

try
{
    ExeConfigurationFileMap fileMap = new ExeConfigurationFileMap();
    fileMap.ExeConfigFilename = "MyTest.exe.config";
    Configuration configFile = ConfigurationManager.OpenMappedExeConfiguration(fileMap, ConfigurationUserLevel.None);
    var appSettings = configFile.AppSettings.Settings;

    if (appSettings.Count == 0)
    {
        Console.WriteLine("AppSettings is empty.");
    }
    else
    {
        foreach (var key in appSettings.AllKeys)
        {
            Console.WriteLine("Key: {0} Value: {1}", key, appSettings[key].Value);
        }
    }
}
catch (ConfigurationErrorsException)
{
    Console.WriteLine("Error reading app settings");
}

修改后的单个键读取代码

try
{
    String key = "Setting1";

    ExeConfigurationFileMap fileMap = new ExeConfigurationFileMap();
    fileMap.ExeConfigFilename = "MyTest.exe.config";

    Configuration configFile = ConfigurationManager.OpenMappedExeConfiguration(fileMap, ConfigurationUserLevel.None);

    var appSettings = configFile.AppSettings.Settings;
   
    string result = appSettings[key].Value;

    Console.WriteLine(result);
}
catch (ConfigurationErrorsException)
{
    Console.WriteLine("Error reading app settings");
}

说明

KeyValueConfigurationElement是专门封装AppSettings中单个配置项的类,它包含Key和Value两个属性,分别对应配置文件里的key和value属性值。直接调用ToString()会返回类的类型名称,这就是你之前输出System.Configuration.KeyValueConfigurationElement的原因,改用Value属性即可获取实际配置值。

内容的提问来源于stack exchange,提问作者user2835586

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 03:07:46