Определение понятия namespace и его использование в сборках .NET.
Полностью квалифицированное имя типа.
ToString( ). Этот метод возвращает строковое представление объекта, используя
формат Пространство имен>.<имя типа> (так называемое полностью квалифицированное имя). Этот метод часто переопределяется в подклассе для возврата строки, состоящей из пар "имя/значение", которая представляет внутреннее состояние объекта, вместо полностью квалифицированного имени
Структура однофайловой сборки.
Между (логической) сборкой и лежащим в ее основе (физическим) двоичным файлом
существует соответствие типа "один к одному" (откуда и происходит термин "однофай-ловая сборка"). В однофайловых сборках все необходимые элементы (заголовки Windows и CIL, метаданные типов, манифест и необходимые ресурсы) размещаются внутри
единственного пакета * . ехе или * . dll.
Структура многофайловой сборки.
Многофайловая сборка, состоит из набора модулей .NET, которые развертываются в виде одной логической единицы и снабжаются одним номером версии. Формально один из этих модулей называется главным модулем и содержит манифест сборки (а также все необходимые CIL-инструкции, метаданные, заголовки и дополнительные ресурсы). В манифесте главного модуля описаны все остальные связанные модули, от которых зависит его работа. Во второстепенных модулях * .netmodule тоже содержится CIL-код и метаданные типов, а также манифест уровня модуля, в котором перечислены внешние сборки, необходимые данному модулю.
Приватные сборки.
Приватные сборки должны всегда размещаться в том же каталоге, что и клиентское приложение, в котором они используются (т.е. в каталоге приложения), или в каком-то из его подкаталогов.
Идентификационные данные приватной сборки включают дружественное имя и
номер версии, которые фиксируются в манифесте сборки. Дружественным называется имя
модуля, в котором содержится манифест сборки, без файлового расширения. Например,
заглянув в манифест сборки CarLibrary. dll, там можно будет обнаружить следующее:
.assembly CarLibrary
{
.ver 1:0:0:0
}
приватные сборки не нуждаются в выполнении сложной проверки версии, поскольку клиентское приложение является единственной сущностью, которой "известно" об их существовании. Из-за этого на одной машине может размещаться множество копий одной и той же сборки в различных каталогах приложений.
Процесс зондирования.
Исполняющая среда .NET определяет местонахождение приватной сборки с применением так называемой технологии зондирования.
В ходе процесса зондирования производится отображение запроса внешней сборки на место размещения соответствующего двоичного файла. Запрос внешней сборки, собственно говоря, может быть явным или неявным. Неявный запрос происходит тогда, когда CLR-среда заглядывает в манифест для определения, где находится требуемая сборка, по маркерам .assembly extern.
Явный запрос осуществляется программно за счет применения метода Load () или
LoadFromO (оба являются членами класса System.Reflection.Assembly) и обычно
предназначен для выполнения позднего связывания или динамического вызова членов
интересующего типа