有人可以帮我理解为什么在配置文件中添加值后,我无法立即将其读入应用程序?我做了一个刷新,但这不起作用。见下文:
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);
}
消息框将显示为空/空白。
如果我重新启动应用程序并在启动后运行另一个命令来读取键值,它将起作用。
有什么想法吗?
答案 0 :(得分:1)
由于在Visual Studio环境中运行应用程序,您很可能遇到了什么。
直接从Debug
或Release
目录运行.exe,RefreshSection()
方法将按预期运行。
如果您想在调试时看到更改后的值,则需要使用AppSettings.Settings
代替ConfigurationManager.AppSettings
:
string blah = config.AppSettings.Settings[key_value].Value