在重新启动应用程序之前无法读取appSettings

时间:2013-05-30 19:05:54

标签: c#

有人可以帮我理解为什么在配置文件中添加值后,我无法立即将其读入应用程序?我做了一个刷新,但这不起作用。见下文:

    public void AddConfig(string key_value, string actual_value)
    {
        // Open App.Config of executable
        System.Configuration.Configuration config = ConfigurationManager.OpenExeConfiguration(Application.ExecutablePath);
        //If it exists, remove it first
        config.AppSettings.Settings.Remove(key_value);
        // Add an Application Setting.
        config.AppSettings.Settings.Add(key_value, actual_value);            
        // Save the configuration file.
        config.Save(ConfigurationSaveMode.Modified);
        // Force a reload of a changed section.            
        ConfigurationManager.RefreshSection("appSettings");
        string blah = ConfigurationManager.AppSettings[key_value];
        MessageBox.Show(blah);
    }

消息框将显示为空/空白。

如果我重新启动应用程序并在启动后运行另一个命令来读取键值,它将起作用。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

由于在Visual Studio环境中运行应用程序,您很可能遇到了什么。

直接从DebugRelease目录运行.exe,RefreshSection()方法将按预期运行。

如果您想在调试时看到更改后的值,则需要使用AppSettings.Settings代替ConfigurationManager.AppSettings

string blah = config.AppSettings.Settings[key_value].Value