В моем приложении мне нужно изменить какое-то значение ("Среда") в appSetting app.config во время выполнения.
Я использую 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));
Я получаю старое значение Environment.
Я заметил, что могу это исправить, выполнив
_settingReader = new AppSettingsReader();
прежде чем я прочитаю "Окружающая среда".
Но я думаю, что создание нового экземпляра не является правильным подходом.
Может быть, есть способ сообщить моему SettingReader, что значения были изменены, чтобы использовать тот же экземпляр, но с обновленными значениями?
(Очевидно, это не вопрос проекта, а скорее вопрос образования)