Поиск

Данные в декларации

Декларацию сборки можно хранить двумя способами. Если вы скомпилировали автономное приложение или DLL, декларация будет встроена в результирующий РЕ. Это называется однофайловой сборкой (single-file assembly). Можно сгенерировать и многофайловую сборку (multifile assembly), у которой декларация существует в виде отдельной сущности в составе сборки или прикрепляется к одному из модулей сборки.

Определение сборки в немалой степени зависит от того, как вы ее используете. С точки зрения клиента, сборка — это совокупность именованных модулей определенных версий, экспортируемых типов и (не обязательно) ресурсов. С точки зрения создателя сборки, это средство упаковки связанных модулей, типов и ресурсов, при этом экспортируется только то, что клиент может использовать. Отсюда следует, что именно декларация определяет соответствие между деталями реализации сборки и тем, что предназначено для использования клиентом. В декларации хранятся:

  • имя сборки текстовое представление имени сборки;
  • информация о версии эта строка содержит четыре части: старший (major) и младший (minor) номер версии, номер ревизии (revision) и компоновки (build);
  • совместно используемое имя (не обязательно) и подписанный хэш сборки эта информация имеет отношение к развертыванию сборок (см. раздел "Развертывание сборок");
  • файлы список всех файлов в составе сборки;
  • ссылки на внешние сборки это список всех внешних сборок, на которые есть прямые ссылки в декларации сборки;
  • типы это список всех типов, содержащихся в сборке с указанием модуля, содержащего тип; именно эти данные использованы в примере отражения из главы 16 (он проходит по всем типам сборки);
  • права доступа список явно запрещенных прав доступа к сборке;
  • пользовательские атрибуты о создании пользовательских атрибутов см. главу 8; как и в случае типов, пользовательские атрибуты хранятся в декларации сборки для ускорения доступа при отражении;
  • информация о продукте сюда входит название компании (Company), товарный знак (Trademark), название продукта (Product) и сведения об авторских правах (Copyright).