Зчитування вдосконаленого конфігураційного файлу в Visual C # (Sharp)

Як було показано, елемент оголошує спеціальний вузол XML, який створює екземпляр певного типу в даному прикладі створюється еемпляр Loadersection Значення витягуються з спеціальної конфігурації слующім чином:

• конфігураційна інфраструктура зчитує різні атрибути, такі як

[ConfigurationProperty(&quoteasyname&quot,  IsRequired=true)]

• конфігураційна інфраструктура виконує перехресну перевірку наявності атрибутів і потреби в них Цей крок можна розглядати як облік спецльной конфігураційної інформації

• конфігураційна інфраструктура очікує, поки додаток викличе свотв про EasyName, TypeName АБО AssemblyName У реализаци і окрем х ВЛАСТИВОСТЕЙ виконується звернення до базового індексатора (такому як, наприклад, base [_propTypeName] З LoaderSection TypeName) і значенням е конфігураційний – го елемента витягується за допомогою дескрипторів властивості, оголошених як статичні члени

Спеціальний конфігураційний елемент можна вважати за допомогою наступного коду (додається до компіляції Definitions) Цей код являє приклад заміни оголошеної раніше функціональності Load ()

public void Load() { LoaderSection loader =

ConfigurationManagerGetSection(&quotloader&quot) as LoaderSection if (loader = null) {

14 Зак 555

_availableTypesAdd(loaderEasyName,

new Configurationlnfo { EasyName = loaderEasyName,

TypeName = loaderTypeName, AssemblyName = loaderAssemblyName})

}

}

Єдиною істотною різницею між цим кодом і колишнім кодом фуніональності Load про є звернення До ConfigurationManager У реалізації Load про передбачалося, що всі конфігураційні дані зберігаються в розділі

. А в новому коді ми витягуємо розділ , визначений як тип LoaderSection Усі наявні типи все так же створюються за допомогою Коллея словника _avaiiableTypes, але виконувати аналіз різних рядків і розбиття їх на складові більше немає потреби

ПРИМІТКА

Створення свого конфігураційного розділу – завдання не таке важке, але трудмкая Трудомісткість полягає в необхідності явно вказати конфігураційної інфраструктурі значення кожного елемента і те, яким чином ви маєте намір використовувати його Простого способу уникнути цього не існує, т к конфігурацнная інфраструктура повинна знати, які конфігураційні елементи потрібно обративать і як Тому для реалізації конфігураційного розділу, що містить кілька елементів, вам доведеться використовувати відповідну кількість коонентов зумовленою конфігураційної інфраструктури, таким чином, як було показано в прикладі для одного елемента Додаткову інформацію дивіться в документації на конфігураційну інфраструктуру NET за адресою http://supportmicrosoftcom/kb/815786/

Джерело: Гросс К С # 2008: Пер з англ – СПб: БХВ-Петербург, 2009 – 576 е: ил – (Самовчитель)

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*