Если вам нужна гибкая работа, а также чтение и запись файлов конфигурации в .net1.1, это не очень удобно. Обычно в проекте инкапсулируется класс управления файлами конфигурации для выполнения операций чтения и записи. В .net2.0 классы ConfigurationManager и WebConfigurationManager можно очень хорошо использовать для управления файлами конфигурации. Класс ConfigurationManager находится в System.Configuration, а WebConfigurationManager — в System.Web.Configuration. Согласно MSDN, для настройки веб-приложения рекомендуется использовать класс System.Web.Configuration.WebConfigurationManager вместо класса System.Configuration.ConfigurationManager.
Ниже я привожу простой пример, иллюстрирующий, как использовать WebConfigurationManager для работы с файлами конфигурации:
//Открываем файл конфигурации
Конфигурация конфигурации = WebConfigurationManager.OpenWebConfiguration("~");
//Получаем узел appSettings
AppSettingsSection appSection = (AppSettingsSection)config.GetSection("appSettings");
//Добавляем элементы в узел appSettings
appSection.Settings.Add("addkey1", "значение ключа1");
appSection.Settings.Add("addkey2", "значение ключа2");
config.Save();
После запуска кода вы можете увидеть изменения в файле конфигурации:
<appSettings>
<add key="addkey1" value="значение ключа1" />
<add key="addkey2" value="значение ключа2" />
</appSettings>
Также очень удобно изменять и удалять узлы или атрибуты:
//Открываем файл конфигурации
Конфигурация конфигурации = WebConfigurationManager.OpenWebConfiguration("~");
//Получаем узел appSettings
AppSettingsSection appSection = (AppSettingsSection)config.GetSection("appSettings");
//Удалить элементы в узле appSettings
appSection.Settings.Remove("addkey1");
//Изменяем элементы в узле appSettings
appSection.Settings["addkey2"].Value = "Изменить значение ключа2";
конфигурация.Сохранить();
Конфигурационный файл:
<Настройки приложения>
<add key="addkey2" value="Изменить значение ключа2" />
</appSettings>
Ссылка: http://msdn2.microsoft.com/en-us/library/ms228060.aspx