Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка для КР по ООП.doc
Скачиваний:
8
Добавлен:
18.04.2019
Размер:
2.47 Mб
Скачать

Сборка. Класс Assembly

Класс 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.

Load

Статический. Перегружен. Загружает сборку.

LoadFile

Статический. Перегружен. Загружает содержимое файла сборки.

LoadFrom

Статический. Перегружен. Загружает сборку.

LoadModule

Перегружен. Загружает внутренний модуль этой сборки.

LoadWithPartialName

Статический. Перегружен. Загружает сборку из папки приложения или из глобального кэша сборок, используя частичное имя.

ToString

Переопределен. Возвращает полное имя сборки, также называемое отображаемым именем.

Открытые события

ModuleResolve

Возникает, когда загрузчик классов общеязыковой среды выполнения не может обработать ссылку на внутренний модуль сборки, используя обычные средства.

Защищенные методы

Finalize (унаследовано от Object)

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

В языках C# и C++ для функций финализации используется синтаксис деструктора.

MemberwiseClone (унаследовано от Object)

Создает неполную копию текущего Object.