Класс Assembly определяет Сборку – основной строительный блок common language runtime приложения. Как строительный блок clr, сборка обладает следующими основными свойствами:
§ возможностью многократного применения,
§ versionable (версифицированностью),
§ самоописываемостью.
Эти понятия являются ключевыми для решения проблемы отслеживания версии и для упрощения развертывания приложений во время выполнения.
Сборки обеспечивают инфраструктуру, которая позволяет во время выполнения полностью “понимать” структуру и содержимое приложения, и контролировать версии и зависимости элеметнов выполняемого приложения.
Сборки бывают:
§ частными (private). Представляют наборы типов, которые могут быть использованы только теми приложениями, в состав которых они входят. Располагаются в файлах с расширениями .dll (.exe) и .pdb (program debug Database). Для того чтобы использовать в приложении частную сборку, её надо ВКЛЮЧИТЬ в приложение, то есть, разместить в каталоге приложения (application directory) или в одном из его подкаталогов.
§ общего доступа (shared). Также набор типов и ресурсов внутри модулей (модуль – двоичный файл сборки). Предназначены для использования НЕОГРАНИЧЕННЫМ количеством приложений на клиентском компе. Эти сборки устанавливаются не в каталог приложения, а в специальный каталог, называемый Глобальным Кэшем Сборок (Global Assembly Cache - GAC). Этот каталог на платформе Windows XP имеет путь C:\WINDOWS\assembly. Таким образом, в .NET ВСЕ совместно используемые сборки собираются в одном месте. Имя (“общее имя” или “строгое имя”) сборки общего доступа строится с использованием информации о версии сборки.
Загружаемая сборка строится как БИБЛИТОТЕКА КЛАССОВ (файл с расширением .dll), либо как выполняемый модуль (файл с расширением .exe).
Если это файл с расширением .dll, то в среде Visual Studio её использование поддерживается специальными средствами среды. Это “полуавтоматическая” загрузка частной сборки в Reference приложения (Add Reference…). Сборки, располагаемые в .exe файлах, особой поддержкой для включения сборки не состав приложения не пользуется.
Для анализа сборки применяется утилита IlDasm.exe, которую можно подключить к непосредственно вызываемому из среды разработки VisualStudio списку утилит.
Ниже представлены члены класса Сборки.
Открытые свойства
CodeBase
Возвращает местонахождение сборки, указанное первоначально, например, в объекте AssemblyName.
EntryPoint
Возвращает точку входа для этой сборки.
EscapedCodeBase
Возвращает URI, предоставляющий базовый код, включая escape-знаки.
Evidence
Возвращает свидетельство для этой сборки.
FullName
Возвращает отображаемое имя сборки.
GlobalAssemblyCache
Возвращает значение, показывающее, была ли сборка загружена из глобального кэша сборок.
ImageRuntimeVersion
Возвращает версию общеязыковой среды выполнения (CLR), сохраненной в файле, содержащем манифест.
Location
Возвращает местонахождение в формате базового кода загруженного файла, содержащего манифест, если для него не было теневого копирования.
Открытые методы
CreateInstance
Перегружен. Находит тип в этой сборке и создает его экземпляр, используя абстрактный метод.
CreateQualifiedName
Статический. Создает тип, задаваемый отображаемым именем его сборки.
Equals (унаследовано от Object)
Перегружен. Определяет, равны ли два экземпляра Object.
GetAssembly
Статический. Возвращает сборку, в которой определяется заданный класс.
GetCallingAssembly
Статический. Возвращает Assembly метода, который вызывает текущий метод выполнения.
GetCustomAttributes
Перегружен. Возвращает пользовательские атрибуты для этой сборки.
GetEntryAssembly
Статический. Возвращает процесс, исполняемый в домене приложения по умолчанию. В других доменах приложений это первый исполняемый процесс, который был выполнен AppDomain.ExecuteAssembly.
GetExecutingAssembly
Статический. Возвращает Assembly, из которой исполняется текущий код.
GetExportedTypes
Возвращает экспортируемые типы, определенные в этой сборке.
GetFile
Возвращает объект FileStream для указанного файла из таблицы файлов манифеста данной сборки.
GetFiles
Перегружен. Возвращает файлы в таблице файлов манифеста сборки.
GetHashCode (унаследовано от Object)
Служит хеш-функцией для конкретного типа, пригоден для использования в алгоритмах хеширования и структурах данных, например в хеш-таблице.
GetLoadedModules
Перегружен. Возвращает все загруженные модули, являющиеся частью этой сборки.
GetManifestResourceInfo
Возвращает информацию о способе сохранения данного ресурса.
GetManifestResourceNames
Возвращает имена всех ресурсов в этой сборке.
GetManifestResourceStream
Перегружен. Загружает указанный ресурс манифеста из сборки.
GetModule
Возвращает указанный модуль этой сборки.
GetModules
Перегружен. Возвращает все модули, являющиеся частью этой сборки.
GetName
Перегружен. Возвращает AssemblyName для этой сборки.
GetObjectData
Возвращает сведения сериализации со всеми данными, необходимыми для повторного создания этой сборки.
GetReferencedAssemblies
Возвращает объекты AssemblyName для всех сборок, на которые ссылается данная сборка.
GetSatelliteAssembly
Перегружен. Возвращает сопутствующую сборку.
GetType
Перегружен. Возвращает объект Type, предоставляющий указанный тип.
GetTypes
Возвращает типы, определенные в этой сборке.
IsDefined
Показывает, определен ли пользовательский атрибут, заданный указанным значением Type.
Перегружен. Загружает внутренний модуль этой сборки.
LoadWithPartialName
Статический. Перегружен. Загружает сборку из папки приложения или из глобального кэша сборок, используя частичное имя.
ToString
Переопределен. Возвращает полное имя сборки, также называемое отображаемым именем.
Открытые события
ModuleResolve
Возникает, когда загрузчик классов общеязыковой среды выполнения не может обработать ссылку на внутренний модуль сборки, используя обычные средства.
Защищенные методы
Finalize (унаследовано от Object)
Переопределен. Позволяет объекту Object попытаться освободить ресурсы и выполнить другие завершающие операции, перед тем как объект Object будет уничтожен в процессе сборки мусора.
В языках C# и C++ для функций финализации используется синтаксис деструктора.