2

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

    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);
    }

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

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

有任何想法吗?

4

1 回答 1

1

您遇到的问题很可能是由于在 Visual Studio 环境中运行应用程序所致。

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

如果您想在调试时查看更改的值,则需要使用 AppSettings.Settings而不是ConfigurationManager.AppSettings

string blah = config.AppSettings.Settings[key_value].Value
于 2013-05-30T20:51:50.650 回答