Изменение в AppSettings необходимо перезапустить мое приложение, как я могу избежать?
Я использую приложение Windows C# .NET 2.0.
и я использую приложение.config для настройки приложения.
но изменение в AppSettings не отражает время выполнения, ему необходимо перезапустить приложение.
Как я могу избежать этого.
вот мой фрагмент кода, я использовал для чтения и записи настроек приложения.
Я читаю настройки, как это
string temp = ConfigurationManager.AppSettings.Get(key);
Я обновляю значение, как это, где узел текущая конфигурация / узел appSettings
node.Attributes["value"].Value = value;
xmlDoc.Save(AppDomain.CurrentDomain.SetupInformation.ConfigurationFile);
4 ответов
вы можете попробовать позвонить
ConfigurationManager.RefreshSection("appSettings")
чтобы обновить раздел AppSettings файла с диска. После их обновления вы сможете прочитать новые значения.
Я только что протестировал это, и это действительно работает.
кроме того, вы можете создать одноэлементные "параметры", чтобы сохранить настройки приложения и выполнить чтение/запись для вас. После загрузки, изменение .config не требует перезагрузки, вы просто устанавливаете свойство на singleton и вызываете свой .метод Save.
версия "runtime" ваших настроек находится в синглтоне, нет необходимости читать с диска.
Не используйте ConfigurationManager для чтения настроек, вместо этого используйте:
System.Configuration.ConfigurationManager.OpenExeConfiguration(AppDomain.CurrentDomain.SetupInformation.ConfigurationFile).AppSettings.Settings["value"];
ConfigurationManager.RefreshSection("appSettings");
работает!!
но будьте осторожны, если мы находимся в режиме отладки, файл конфигурации может быть вызван xxxxx.vshost.исполняемый.config, где xxxxx - это имя вашего проекта.