Практическое руководство. Регистрация основных сборок взаимодействия

Классы можно маршалировать только com-взаимодействием и всегда маршалировать как интерфейсы. Иногда интерфейс, используемый для маршалинга класса, называют интерфейсом класса. Сведения о переопределении интерфейса класса выбранным интерфейсом см. в разделе Вызываемая оболочка COM.

Разработчик, желающий использовать типы COM из приложения .NET Framework, может создать сборку взаимодействия, однако это связано с проблемой. Каждый раз, когда разработчик импортирует и подписывает библиотеку типов COM, он создает набор уникальных типов, которые несовместимы с типами, импортированными и подписанными другим разработчиком. Чтобы решить эту проблему несовместимости, каждый разработчик должен получить предоставляемую поставщиком и подписанную основную сборку взаимодействия.

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

Даже если вы не планируете предоставлять доступ к сторонним типам COM, использование основной сборки взаимодействия может упростить задачу взаимодействия с COM-компонентами. Однако такая стратегия не обеспечивает изоляции от изменений, которые поставщик может вносить в типы, определенные в основной сборке взаимодействия. Если приложению требуется такая изоляция, создайте собственную сборку взаимодействия вместо использования основной сборки взаимодействия.

Вам необходимо зарегистрировать все полученные основные сборки взаимодействия на своем компьютере, прежде чем вы сможете ссылаться на них в Visual Studio. Visual Studio ищет основную сборку взаимодействия и использует ее при первой ссылке на тип из библиотеки типов COM. Если программа Visual Studio не может найти основную сборку взаимодействия, связанную с библиотекой типов, она предлагает приобрести ее или создать сборку взаимодействия. Средство импорта библиотек типов (Tlbimp.exe) также использует реестр для обнаружения основных сборок взаимодействия.

Если вы не планируете использовать Visual Studio, регистрировать основные сборки взаимодействия необязательно, однако регистрация предоставляет два преимущества.

  • Зарегистрированная основная сборка взаимодействия явным образом помечается в разделе реестра исходной библиотеки типов. Регистрация — наилучший способ обнаружения основной сборки взаимодействия на компьютере.

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

Для регистрации основной сборки взаимодействия используется средство регистрации сборок (Regasm.exe).

Регистрация основной сборки взаимодействия

  1. В командной строке введите:

    regasmимя_сборки

    В этой команде имя_сборки — это имя файла регистрируемой сборки. Программа Regasm.exe добавляет запись об основной сборке взаимодействия в тот же раздел реестра, что и для исходной библиотеки типов.

Пример

В примере ниже регистрируется основная сборка взаимодействия CompanyA.UtilLib.dll.

regasm CompanyA.UtilLib.dll

См. также