在我的應用程序中,我需要在運行時在app.config的appSetting中更改一些值(「Environment」)。C#AppSettingsReader:「重讀」值到AppSettingsReader(運行時)?
我用AppSettingsReader
private static AppSettingsReader _settingReader;
public static AppSettingsReader SettingReader
{
get
{
if (_settingReader == null)
{
_settingReader = new AppSettingsReader();
}
return _settingReader;
}
}
然後,在某個階段,我做這個
config.AppSettings.Settings[AppSettingString.Environment.ToString()].Value = newEnvironment.ToString();
config.Save(ConfigurationSaveMode.Modified);
ConfigurationManager.RefreshSection("appSettings");
不過,下一次我嘗試閱讀 「環境」 這樣的
string environment = (string)SettingReader.GetValue(AppSettingString.Environment.ToString(), typeof(System.String));
我結束與環境的舊價值相提並論。
我注意到,我可以通過做
_settingReader = new AppSettingsReader();
之前,我讀「環境」解決這個問題。
但我認爲創建一個新的實例不是正確的方法。
也許有一種方法可以讓我的SettingReader知道,值已更改爲使用它的同一個實例,但刷新值?
(不是一個項目破的問題很明顯,更多的教育之一)