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

Визначення у створеному нами конфігураційному файлі декілька незграбно, т к всі наявні типи зберігаються в єдиній парі ключ = значення. Було б краще мати можливість визначати в конфігураційному файлі оельние елементи, як показано в наступному коді:

&ltloader easyname=&quotImpll&quot typename=&quotImplementationsiImplementation&quot assemblyname=&quotImplementationsidll&quot /&gt

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

ПРИМІТКА

Для простоти ми будемо користуватися тільки одним динамічно типом, предстаенним XML-елементом У справжньому вирішенні цей підхід можна примяти з декількома інтерфейсами і типами

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

процедура аналізу А коли потрібно спеціальний аналіз, то конфігураційної інфраструктурі NET необхідно вказати код, який потрібно виконати Далі наводиться повний конфігураційний файл NET, що містить теги для спецльного аналізу:

&lt?xml version=&quot10&quot encoding=&quotutf-8&quot &gt

&ltconfiguration&gt

&ltconfigSections&gt

&ltsection name=&quotloader&quot

type=&quotDefinitionsLoaderSection,Definitions&quot /&gt

&lt/configSections &gt

&ltappSettings&gt

&ltadd key= &quotAssemblies&quot

value=&quotImpll,ImplementationslImplementation,  Implementationsldll, Impl2,Implementations2Implementation,Implementations2dll&quot  /&gt

&lt/appSettings&gt

&lt1oader easyname=&quotImpl1&quot

typename=&quotImplementationslImplementation&quot assemblyname=&quotImplementationsldll&quot /&gt

&lt/configuration

Виділена жирним шрифтом секція коду представляє нову частину конфігуріонного файлу, призначення якої можна назвати конфигурированием конфурірованія. Вузли XML, розташовані в розділі , іспользтся для спеціалізації інфраструктури аналізу конфігураційної інформації У справжньому прикладі XML-вузол

містить два атрибути, які укивают, що повинна робити інфраструктура при виявленні певного XML-вузла Атрибут name вказує імя вузла XML, а атрибут type – тип (DefinitionsLoaderSection) І збірку (Definitions), яка повинна обрабатать даний вузол XML

Зупинимося на цій стадії і розберемося, що тут відбувається Вузол XML

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

Так як для конфігурування конфігураційної інфраструктури застосовуються ті ж самі методи, що і в нашій інфраструктурі, реалізація функціональнті конфігураційної інфраструктури означає реалізацію стандартних типів У нашому коді тип implementationslimplementatio n реалізує інтерфейс, в той час як для конфігураційної інфраструктури нам потрібно створити похідний клас зумовленого класу Будь-який з цих підходів є прийнятним, але, як ви побачите, створення похідного класу зумовленого класу проставляє конкретна перевага

Джерело: Гросс К С # 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>

*

*