Завантаження зборок зі строгими іменами в Visual C # (Sharp)

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

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

Ідентифікатор збірки Implementationdll є загальним ідентифікатором напобіе імені Крістіан Гросс А точним ідентифікатором NET буде наступний:

Implementations2, Version = lООО, Culture = neutral, PublicKeyToken = 6bc4c8c27c08ba48

Ідентифікатор досить важко вимовляв, але він містить всю необхідний інформацію А саме імя (implementations2), номер версії, культурне середовище (комбінація мови і країни) і ідентифікатор з фіксованим знаком Коли культурне середовище вказується як neutral, то враховується тільки мову, а країна – ні Наприклад, для культурного середовища єп-сд, якщо вказано neutral, то частина СА буде проігнорована

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

Додаткова інформація вказується у файлі вихідного коду AssemblyInfocs, який створюється за замовчуванням Далі наводиться фрагмент вихідного коду збірки Implementations2dll Для перегляду вмісту файлу Assemblylnfocs розгорніть вузол Propertie s проекту і двічі клацніть по імені файлу

[assembly:    AssemblyTitle(&quotImplementations2&quot)] [assembly:    AssemblyDescription(&quot&quot)] [assembly:    AssemblyConfiguration(&quot&quot)] [assembly:    AssemblyCompany(&quotdevspacecom&quot)]

[assembly:    AssemblyProduct(&quotImplementations2&quot)]

[assembly:    AssemblyCopyright(&quotCopyright (c) devspacecom 2007&quot)] [assembly:    AssemblyTrademark(&quot&quot)]

[assembly:    AssemblyCulture(&quot&quot)]

[assembly: Guid(&quot9b0a35bc-7170-4104-815b-b97b07a7d2ee&quot)]

// Version information for an assembly consists of the following four values:

/ / (Інформація про версію для збірки (складається

/ / З наступних чотирьох значень 🙂

/ / Major Version (Основна версія)

/ / Minor Version (Додаткова версія)

/ / Build Number (Номер збірки)

/ / Revision (Модифікація)

II

// You can specify all the values or you can default

// the Build and Revision Numbers

//b y using the * as shown below:

/ / Можна вказати всі значення або використовувати за замовчуванням номера збірки II і модифікації за допомогою *, як показано далі:

/ / [Assembly: AssemblyVersion (1О *)] [assembly: AssemblyVersionCl000&quot)] [assembly: AssemblyFileVersion( &quot1000&quot)]

Зверніть увагу на те, що всі дескриптори збірки оголошені як атрибути

. NET Атрибути, виділені жирним шрифтом, посилаються на версію і культуи середу збірки Коректуючи ці атрибути, можна точно налаштувати, яку збірку завантажувати Більш докладно цей процес викладено в розд Управління веіямі збірок далі в цьому розділі

Щоб завантажити конкретну збірку, потрібно створити імя збірки наступним чином:

AssemblyName assemblyName = new AssemblyName(value) Assembly assembly = AssemblyLoad(assemblyName) object obj = assemblyCreatelnstance(infoTypeName)

Мінлива value містить точний ідентифікатор NET збірки і передається AssemblyName як параметр конструктора Створений екземпляр передаея методу Assembly Load (), який завантажує збірку Створення примірника типу виконується в такій же послідовності, як було викладено раніше

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

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

*

*