Написание WPF app.config - PullRequest
       7

Написание WPF app.config

0 голосов
/ 16 декабря 2010

Я видел предложенное решение, но, похоже, у меня не работает:

Configuration oConfig = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); 
oConfig.AppSettings.Settings["PreferenceToRemember"].Value = “NewValue”; 
oConfig.Save(ConfigurationSaveMode.Modified); 
ConfigurationManager.RefreshSection("appSettings"); 

Он успешно изменяет значение в памяти, но не сохраняет его обратно в файл конфигурации.

Я пытаюсь сделать это в приложении Wpf, если это что-то меняет.

Или есть предпочтительный способ сохранить пользовательские настройки в файл?

Ответы [ 2 ]

1 голос
/ 16 декабря 2010

Если ваше приложение установлено в \Program Files\, возможно, у него нет прав на запись в файл. Обычно файлы app.config модифицируются вручную (по моему опыту, по крайней мере). Если вы хотите сохранить пользовательские настройки, вам следует обратиться к файлу .settings, поскольку он создается в каталоге% appdata% (или% localappdata%), который находится в каталоге пользователя.

0 голосов
/ 16 декабря 2010

My думаю, означает, что использование OpenExeConfiguration фактически не открывает связанный файл. Например, вы можете работать из XAP, где внутри .xap все равно будет .exe.config, но он не сопоставляется с реальным файлом в файловой системе.

Вы, вероятно, могли бы проверить это, увидев, oConfig.HasFile равно true или нет.

Если мои предположения верны, то вам нужно использовать перегрузку OpenExeConfiguration(string); пример на странице MSDN имеет разумный способ получить правильное имя файла, хотя мой первый инстинкт был вместо этого попытаться System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase.

...