Импорт библиотеки типов в виде сборки
Обновлен: Ноябрь 2007
Определения COM-типов обычно хранятся в библиотеке типов. С другой стороны, CLS-совместимые компиляторы создают в сборке метаданные типов. Эти два источника сведений о типе заметно отличаются.
![]() |
---|
По возможности следует использовать основную сборку взаимодействия, опубликованную автором COM-компонента, который разработчик планирует интегрировать в управляемый программный код. Типы в основной сборке взаимодействия уже импортированы и готовы для активации и вызова из управляемого кода. Сведения о создании и использовании основных сборок взаимодействия см. в разделе Основные сборки взаимодействия. |
В этом разделе описываются способы создания метаданных из библиотеки типов. Результирующая сборка и называется сборкой взаимодействия.
Создание метаданных
Библиотеки COM-типов могут быть автономными файлами TLB, например Loanlib.tlb. Некоторые библиотеки типов встроены в раздел ресурсов файла DLL или EXE. Другими источниками данных библиотек типов являются файлы OLB и OCX.
После нахождения библиотеки типов, содержащей реализацию искомого COM-типа, для создания сборки взаимодействия, содержащей метаданные типа, разработчик может выбрать нужный из нескольких вариантов.
Visual Studio 2005
Visual Studio 2005 автоматически преобразует COM-типы библиотеки типов в метаданные сборки. Инструкции см. в разделе Практическое руководство. Добавление ссылок на библиотеки типов.
Программа экспорта библиотек типов (Tlbexp.exe)
Программа экспорта библиотек типов предоставляет параметры командной строки для настройки метаданных в результирующем файле взаимодействия, импортирует типы из существующей библиотеки типов и создает сборку взаимодействия и пространство имен. Инструкции см. в разделе Практическое руководство. Создание сборок взаимодействия их библиотек типов.
Класс TypeLibConverter
Класс TypeLibConverter (в пространстве имен System.Runtime.InteropServices) предоставляет методы преобразования компонентных классов и интерфейсов в библиотеке типов в метаданные сборки. Этот класс API создает те же метаданные, что и программа Tlbimp.exe. Но в отличие от программы Tlbimp.exe класс TypeLibConverter может преобразовать в метаданные библиотеку типов, находящуюся в памяти.
Настраиваемые оболочки
Если библиотека типов недоступна или является неверной, единственный выход — создать в управляемом исходном коде дубликат определения класса или интерфейса. После этого нужно скомпилировать исходный код с помощью компилятора, который обращается к среде выполнения, чтобы создать метаданные в сборке.
Чтобы определить COM-типы вручную, необходим доступ к следующим элементам:
точные описания определяемых компонентных классов и интерфейсов;
компилятор, например, компилятор C#, который может создавать соответствующие определения классов .NET Framework;
сведения о правилах преобразования библиотек типов в сборки.
Написание настраиваемой оболочки — это сложная и редко используемая процедура. Дополнительные сведения о создании настраиваемой оболочки см. в разделе Настройка стандартных оболочек.
Дополнительные сведения о процессе импорта COM-взаимодействия см. в разделе Обзор преобразования библиотек типов в сборки.
См. также
Задачи
Практическое руководство. Добавление ссылок на библиотеки типов
Практическое руководство. Создание сборок взаимодействия их библиотек типов
Основные понятия
Предоставление клиентам .NET Framework доступа к COM-компонентам
Настройка стандартных оболочек
Использование COM-типов в управляемом коде
Компиляция проекта, использующего взаимодействие
Развертывание приложения взаимодействия
Ссылки
Программа импорта библиотек типов (Tlbimp.exe)