Платформа .NET предлагает унифицированный подход к конфигурированию, основанный на использовании конфигурационных XML-файлов . Существует один глобальный файл конфигурации с параметрами, относящимися к платформе в целом. Этот файл называется machine.config и располагается в каталоге установки платформы .NET. Любая сборка может иметь локальный конфигурационный файл. Он должен носить имя файла сборки с добавлением расширения .config и располагаться в одном каталоге со сборкой (то есть файл конфигурации для main.exe должен называться main.exe.config1). Параметры, описанные в локальных конфигурационных файлах, «накладываются» на параметры из файла machine.config.
Проанализируем общую схему любого файла конфигурации. Корневым XML-элементом файла является элемент <configuration >. Он может включать следующие дочерние элементы:
<configSections > – описывает разделы конфигурации (в том числе пользовательские);
<appSettings > – пользовательские параметры конфигурации;
<connectionStrings > – строки подключения к источникам данных;
<startup > – параметры запуска CLR (поддерживаемые версии);
<runtime > – параметры времени выполнения (регулируют способ загрузки сборок и работу сборщика мусора);
<system.diagnostics > – совокупность диагностических параметров, которые задают способ отладки, перенаправляют сообщения отладки и т. д.;
<system.net > – настройка параметров работы с сетью;
<system.serviceModel > – настройка элементов технологии WCF;
<system.web > – параметры конфигурации приложений ASP.NET.
Рассмотрим способы описания в файле конфигурации пользовательских данных. В простейшем случае для этого используется раздел <appSettings >, который может содержать следующие элементы:
<add key ="name" value="the value"/> – добавляет новый ключ и значение в коллекцию пользовательских конфигурационных данных;
<remove key ="name"/> – удаляет существующий ключ и значение из коллекции конфигурационных данных;
<clear/> – очищает коллекцию конфигурационных данных.
Разработчик может создать собственный раздел конфигурационного файла. Такой раздел должен быть зарегистрирован в секции <configSections>. При регистрации раздела задаётся его обработчик – класс, который будет отвечать за превращение содержимого раздела в данные. В зависимости от типа хранимых данных можно воспользоваться одним из существующих обработчиков либо построить собственный обработчик.
Для программного доступа к конфигурационным данным текущего приложения используется статический класс ConfigurationManager из пространства имён System.Configuration1 (сборка System.Configuration.dll). Класс имеет следующие элементы:
1. AppSettings – коллекция-словарь пользовательских параметров;
2. ConnectionStrings – словарь строк подключения к источникам данных;
3. GetSection() – извлекает указанный раздел конфигурации;
4. OpenExeConfiguration() – открывает файл конфигурации указанной сборки в виде объекта Configuration;
5. OpenMachineConfiguration() – открывает файл machine.config;
6. RefreshSection() – перечитывает указанный раздел конфигурации.
При работе в Visual Studio можно создать так называемые пользовательские настройки . Для этого используется окно свойств проекта (Project | Properties | Settings). Для каждого параметра указывается имя, тип и область видимости – глобальная или локальная (для конкретного пользователя).