Как изменить настройки приложения во время выполнения - PullRequest
4 голосов
/ 13 февраля 2009

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

Я так и делаю:

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

Кажется, что он изменяется только в памяти, а не в файле.

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

Спасибо.

Ответы [ 3 ]

10 голосов
/ 13 февраля 2009

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

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

5 голосов
/ 13 февраля 2009

Если ваше приложение имеет права на запись в файл ...



    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();
    }

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

5 голосов
/ 13 февраля 2009

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

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

...