Главная » C# » Считывание усовершенствованного конфигурационного файла в Visual C# (Sharp)

0

Как было показано, элемент <configsections> объявляет специальный узел XML, который создает экземпляр определенного типа; в данном примере создается эемпляр Loadersection. Значения извлекаются из специальной конфигурации слующим образом:

•    конфигурационная  инфраструктура  считывает  различные  атрибуты,  такие  как

[ConfigurationProperty("easyname",  IsRequired=true)];

•    конфигурационная инфраструктура выполняет перекрестную  проверку  наличия атрибутов и надобности в них. Этот шаг можно рассматривать как учет спецльной конфигурационной информации;

•    конфигурационная инфраструктура ожидает, пока  приложение  вызовет  свотв о EasyName, TypeName ИЛИ AssemblyName. В реализаци и отдельны х СВОЙСТВ выполняется  обращение  к  базовому  индексатору  (такому  как,   например, base [_propTypeName] С LoaderSection. TypeName) И Значени е  конфигурационно – го элемента извлекается с помощью дескрипторов свойства, объявленных как статические члены.

Специальный конфигурационный элемент можно считать с помощью следующего кода (добавляется в сборку Definitions). Этот код представляет пример замены объявленной ранее функциональности Load().

public void Load() { LoaderSection loader =

ConfigurationManager.GetSection("loader") as LoaderSection; if (loader != null) {

14 Зак. 555

_availableTypes.Add(loader.EasyName,

new Configurationlnfo { EasyName = loader.EasyName,

TypeName = loader.TypeName, AssemblyName = loader.AssemblyName});

}

}

Единственной существенной разницей между этим кодом и прежним кодом фуниональности Load о является обращение К ConfigurationManager. В реализации Load о   предполагалось,  что  все  конфигурационные  данные  хранятся  в  разделе

<appSettings>. А в новом коде мы извлекаем раздел <loader>, определенный как тип LoaderSection. Все имеющиеся типы все так же создаются с помощью коллеии словаря _avaiiableTypes, но выполнять анализ различных строк и разбиение их на составляющие больше нет надобности.

ПРИМЕЧАНИЕ

Создание своего конфигурационного раздела — задача не такая трудная, но  трудмкая. Трудоемкость заключается в необходимости явно указать конфигурационной инфраструктуре значение каждого элемента и то, каким образом вы намереваетесь использовать его. Простого способа избежать этого не существует,  т.  к.  конфигурацнная инфраструктура должна знать, какие конфигурационные элементы нужно обратывать и как. Поэтому для реализации конфигурационного раздела, содержащего несколько элементов, вам придется использовать соответствующее количество коонентов   предопределенной   конфигурационной   инфраструктуры,    таким    образом, как было показано в  примере  для  одного  элемента.  Дополнительную  информацию см. в документации на конфигурационную инфраструктуру .NET по адресу http://support.microsoft.com/kb/815786/.

Источник: Гросс  К. С# 2008:  Пер. с англ. — СПб.:  БХВ-Петербург, 2009. — 576 е.:  ил. — (Самоучитель)

По теме:

  • Комментарии