Організація проектів динамічного завантаження в Visual C # (Sharp)

Для прикладів цієї глави визначені чотири проекти:

• I Definitions – бібліотека класу, що містить визначення інтерфейсу IDefignition І класу ConfigurationLoader Клас ConfigurationLoader міститиме функціональність для динамічної завантаження зборок

Implementations ІImplementations2

• I Implementationsi – бібліотека класу, Що Містить клас Implementation і впроваджує інтерфейс iDefinition Клас implementation визначається в просторі імен implementationsi і не є public

• Implementations2 – бібліотека класу, що містить клас Implementation і впроваджує інтерфейс iDefinition Клас implementation визначається У просторі імен Implementations2 І не є public

• Са 1 lRuntimeimpiementation-консольний додаток, що використовується в гле в якості користувальницького додатка

На ри з 121 показу н проек т Definitions в Solution Explorer Проек т Definitions посилається на стандартні бібліотеки NET (system, SystemCore і тд) Унальним простором, на яке потрібно зробити посилання, є тільки Systemconfiguration Це простір імен містить типи для читання файлу конфігурації програми

Проект implement at ions 1 показаний на рис 122 Проект містить файл ImpIementationcs, в якому визначені тип implementation і реалізація інтеейса iDefinitions Реалізація типу implementation виглядає таким чином:

namespace Implementationsl {

class Implementation : IDefinition {

public string TranslateWord( string word) { return &quot" }

}

}

Рис 121 Проект Definitions Рис 122 Проект Implementationsl

Клас Implementation містить жорстку посиланням на інтерфейс IDefinition, птоми у вузлі References проекту є посилання на збірку Definitions Так як існує жорстка посилання на інтерфейс IDefinition, він оголошений public, в той час як клас Implementation – ні

Проект impiementations2 реалізований, як проект implementationsl, і містить посилання на збірку Definitions Особливістю проекту impiementations2 є використання в ньому суворого імені Всі розглянуті до цього часу збої не є унікальними Щоб зробити їх унікальними, необхідно розрив підписування Підписування також необхідно дозволити в збірці Definitions Як це зробити, описується в наступному розділі

Проект CaiiRuntimeimpiementation є користувальницьким додатком і показаний на рис 123 Користувальницький додаток відповідає за виклик функціальностей, що надаються проектами ImplementationslІ Implementations2

Зверніть увагу, що в структурі проекту CaiiRuntimeimpiementation вузол References містить лише складання Definitions Посилань на Implementationsl І Implementations2 В не м немає

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

завантаженої складанням можна робити все, що можна робити із збіркою, на яку є жорстка посилання

Рис 123 Проект CallRuntimelmplementation

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

*

*