Определение понятия namespace и его использование в сборках .NET.

Полностью квалифицированное имя типа.

ToString( ). Этот метод возвращает строковое представление объекта, используя

формат Пространство имен>.<имя типа> (так называемое полностью квалифицированное имя). Этот метод часто переопределяется в подклассе для возврата строки, состоящей из пар "имя/значение", которая представляет внутреннее состояние объекта, вместо полностью квалифицированного имени

Структура однофайловой сборки.

Между (логической) сборкой и лежащим в ее основе (физическим) двоичным файлом

существует соответствие типа "один к одному" (откуда и происходит термин "однофай-ловая сборка"). В однофайловых сборках все необходимые элементы (заголовки Windows и CIL, метаданные типов, манифест и необходимые ресурсы) размещаются внутри

единственного пакета * . ехе или * . dll.

Определение понятия namespace и его использование в сборках .NET. - student2.ru

Структура многофайловой сборки.

Многофайловая сборка, состоит из набора модулей .NET, которые развертываются в виде одной логической единицы и снабжаются одним номером версии. Формально один из этих модулей называется главным модулем и содержит манифест сборки (а также все необходимые CIL-инструкции, метаданные, заголовки и дополнительные ресурсы). В манифесте главного модуля описаны все остальные связанные модули, от которых зависит его работа. Во второстепенных модулях * .netmodule тоже содержится CIL-код и метаданные типов, а также манифест уровня модуля, в котором перечислены внешние сборки, необходимые данному модулю.

Определение понятия namespace и его использование в сборках .NET. - student2.ru

Приватные сборки.

Приватные сборки должны всегда размещаться в том же каталоге, что и клиентское приложение, в котором они используются (т.е. в каталоге приложения), или в каком-то из его подкаталогов.

Идентификационные данные приватной сборки включают дружественное имя и

номер версии, которые фиксируются в манифесте сборки. Дружественным называется имя

модуля, в котором содержится манифест сборки, без файлового расширения. Например,

заглянув в манифест сборки CarLibrary. dll, там можно будет обнаружить следующее:

.assembly CarLibrary

{

.ver 1:0:0:0

}

приватные сборки не нуждаются в выполнении сложной проверки версии, поскольку клиентское приложение является единственной сущностью, которой "известно" об их существовании. Из-за этого на одной машине может размещаться множество копий одной и той же сборки в различных каталогах приложений.

Процесс зондирования.

Исполняющая среда .NET определяет местонахождение приватной сборки с применением так называемой технологии зондирования.

В ходе процесса зондирования производится отображение запроса внешней сборки на место размещения соответствующего двоичного файла. Запрос внешней сборки, собственно говоря, может быть явным или неявным. Неявный запрос происходит тогда, когда CLR-среда заглядывает в манифест для определения, где находится требуемая сборка, по маркерам .assembly extern.

Явный запрос осуществляется программно за счет применения метода Load () или

LoadFromO (оба являются членами класса System.Reflection.Assembly) и обычно

предназначен для выполнения позднего связывания или динамического вызова членов

интересующего типа

Наши рекомендации