Как изменить настройки приложения во время выполнения

StackOverflow https://stackoverflow.com/questions/546229

  •  23-08-2019
  •  | 
  •  

Вопрос

Я пытаюсь изменить во время выполнения один ключ файла настроек моего приложения, но это не работает.

Я делаю так:

ConfigurationSettings.AppSettings["XPTO"] = "HELLO";

Такое ощущение, что меняется только в памяти, а не в файле.

Кто-нибудь знает, как это сделать?

Спасибо.

Это было полезно?

Решение

Взгляни на мой обзор файлов настроек .NET... Короче говоря, я думаю, вам нужна настройка на уровне пользователя.Он будет вести себя так, как вы ожидаете.

Редактировать: Если вы используете дизайнер настроек в Visual Studio, затем просто измените «Область действия» на «Пользователь».Если нет, вы сможете сделать то же самое программно.

Другие советы

Файл AppSettings не предназначен для записи.Он предназначен для хранения конфигураций, которые не изменяются во время выполнения, но могут меняться со временем, т.е.:Строки подключения к БД, URL-адреса веб-служб и т. д.

Таким образом, хотя на самом деле обновление файла возможно, вам следует повторно оценить, следует ли там хранить это значение.

Предполагая, что ваше приложение имеет права на запись в файл...



    Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);  // the config that applies to all users
    AppSettingsSection appSettings = config.AppSettings;

    if (appSettings.IsReadOnly() == false)
    {
        appSettings("Key").Value = "new value";

        config.Save();
    }

Я игнорирую все возможные исключения, которые могут быть выброшены...

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top