2010-03-23 6 views
10

Я хочу сохранить некоторые пользовательские данные в файл конфигурации приложения, и мне нужно создать некоторые пользовательские разделы в app.config. Чтение пользовательских данных из app.config - простая задача, но я не могу записать информацию из моей программы в app.config. Для решения этой проблемы я создаю тестовый проект.Запись пользовательских разделов в app.config

Для чтения данных из пользовательских раздела app.config Я использовал информацию из этой статьи:

http://devlicio.us/blogs/derik_whittaker/archive/2006/11/13/app-config-and-custom-configuration-sections.aspx

ответ

4

Первого переопределение IsReadyOnly() в вашем CustomConfigSection вернуть ложь.

После того, как вы сделали, что вы должны быть в состоянии сделать что-то вроде этого (это для ASP.NET, но это может быть transferably):

System.Configuration.Configuration configFile = WebConfigurationManager.OpenWebConfiguration("~"); 
CustomConfigSection config = (CustomConfigSection)configFile.GetSection("Custom"); 
config.Tweak = 1; 
config.Change = "foo"; 
configFile.Save(); 

Дайте что попробовать.

+2

Вы имеете в виду переопределить 'IsReadOnly()' для возврата 'false'? – FrustratedWithFormsDesigner

+0

Да. Я вокал. Editted. – Pike65

+0

Большое спасибо! Это очень просто и очень полезно! –

5

Вы действительно ничего не должны писать app.config, потому что если вы это сделаете, вы ограничиваете использование своего приложения только администраторами. Лучше всего записывать настройки в отдельный файл .config, расположенный в папке профиля пользователя, например. <profiles>\<user name>\Application Data\<your product name>.

+0

Спасибо. Я думаю, что пользователю приложения нужны только права на чтение и запись. Если я ошибаюсь, пожалуйста, поправьте меня. –

+1

Чтобы уточнить: файл 'app.config' установлен в папку под программными файлами. По умолчанию это настроено так, чтобы не разрешать доступ на запись для стандартных пользователей. Хотя .NET с радостью позволит вам писать в любой файл .config через обычный API конфигурации, если вы действительно попробуете его запустить как стандартный пользователь, тогда вы получите исключение безопасности. –

+0

Спасибо. Я буду помнить это. Я буду использовать возможность для записи в app.config для моих служб Windows, а не для настольных приложений. –

Смежные вопросы