Как изменить значение раздела App.Config - PullRequest
1 голос
/ 12 января 2012

У меня есть app.config, как показано ниже,

<configuration>
    <environment>
        <add key="security" value="1"/> -- I want to change this value to 3
    </environment>
</configuration>

Я пытался, как показано ниже, чтобы перейти к разделу среды, переменная окружения

Configuration config = ConfigurationManager.OpenExeConfiguration(exePath);
var environment = config.GetSection("environment");

не дает мне достаточно возможностей дляполучить дочерние элементы для изменения значения.Может ли кто-нибудь помочь мне в этом.

1 Ответ

3 голосов
/ 12 января 2012

Используйте настройки области видимости пользователя !! НИКОГДА не меняйте конфигурацию приложения таким образом. Любое значение, которое изменяется в приложении, должно быть пользовательской настройкой.

Обычно вы получаете доступ к этим настройкам через

Properties.Settings.Default.MyConfigurationValue = ....;
Properties.Settings.Default.Save();

EDIT
Пример для того, что я написал в комментариях. Создайте две пользовательские настройки: FirstRun - это bool, которое по умолчанию установлено на true. Environment - это ваше значение, по умолчанию установлено 0.

Тогда, например, в функции Main в Program.cs вы сделаете следующее:

if (Properties.Settings.Default.FirstRun)
{
    Properties.Settings.Default.FirstRun = false;
    if (myConditionIsTrue)
        Properties.Settings.Default.Environment = 3;
    Properties.Settings.Default.Save();
}

Позже в вашем приложении достаточно использовать Properties.Settings.Default.Environment. Вот как механизм настройки предназначен для использования, если вы хотите изменить значения конфигурации из вашего приложения.

В Windows 2000, XP, 7 и ветке Windows Server у вас даже не было бы прав на изменение app.config в папке Program Files, так что не надо!

...