Обновление настроек приложения в приложении WPF - PullRequest
0 голосов
/ 07 февраля 2012

Я пытаюсь обновить значение в своем файле app.config, используя приведенный ниже код (значение определяется в Свойства> Настройки как область приложения)

System.Configuration.Configuration configApp = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
MessageBox.Show(configApp.AppSettings.Settings.Count.ToString()); //this shows 0
configApp.AppSettings.Settings["PontajAdminPwd"].Value = "dsfs";
configApp.Save(ConfigurationSaveMode.Full);

но говорится, что configApp.AppSettings.Settings пусто ...

Это часть моего файла app.config

<applicationSettings>
    <PontajWPF.Properties.Settings>
        <setting name="PontajAdminPwd" serializeAs="String">
            <value>696W3oybVP85szuiY2Qpiw==</value>
        </setting>
    </PontajWPF.Properties.Settings>
</applicationSettings>

Что я делаю не так?

Спасибо

РЕДАКТИРОВАТЬ 1: Я тороплюсь, поэтому я принял предложенное здесь решение (прямой доступ к файлу после изменения файла app.config вручную - с использованием appSettings вместо applicationSettings):
http://www.longhorncorner.com/uploadfile/rahul4_saxena/update-app-config-key-value-at-run-time-in-wpf/

1 Ответ

3 голосов
/ 07 февраля 2012

configApp.AppSettings.Settings.Count.ToString() это попытается прочитать настройки из раздела <appSettings>, а не <applicationSettings>.Также имя файла должно app.config.

. В вашем случае вам нужно будет использовать Properties.Settings статический класс, чтобы получить доступ к вашим настройкам с applicationSettings.Вы можете попробовать PontajWPF.Properties.Settings.Default.PontajAdminPwd

Настройки области приложения доступны только для чтения и могут быть изменены только во время разработки или путем измененияФайл .exe.config между сеансами приложения .

Настройки области действия пользователя , однако, могут быть записаны во время выполнения, так же, как вы изменили бы любое значение свойства.Новое значение сохраняется в течение сеанса приложения.Вы можете сохранить изменения настроек пользователя между сеансами приложения, вызвав метод Settings.Save.Эти настройки сохраняются в файле User.config.

Подробнее о MSDN

Надеюсь, это поможет.

...