COM-взаимодействие
COM Interop — это технология, включенная в .NET Framework среду общего языка (CLR), которая позволяет объектам модели компонентных объектов (COM) взаимодействовать с объектами .NET и наоборот .
Цель COM Interop — предоставить доступ к существующим компонентам COM без необходимости изменения исходного компонента. Он пытается сделать типы .NET эквивалентными типам COM. Кроме того, COM Interop позволяет разработчикам COM получать доступ к управляемым объектам так же легко, как и к другим объектам COM.
Инструменты взаимодействия
[ редактировать ]Инструменты для поддержки COM-компонента с использованием сборки .NET.
[ редактировать ] создает .NET Framework библиотеку типов и специальные записи реестра при регистрации компонента. Он предоставляет специализированную утилиту ( RegAsm.exe
, обычно находится в C:\Windows\Microsoft.NET\Framework
), который экспортирует управляемые типы в библиотеку типов и регистрирует управляемый компонент как традиционный COM-компонент. Когда экземпляр типа создается через COM, .NET CLR является фактическим COM-объектом, который выполняется, и он просто маршалирует любые вызовы методов или доступ к свойствам для реализации типа.
COM без регистрации можно использовать, чтобы избежать ада DLL .
Инструменты для поддержки сборки .NET с использованием COM-компонента
[ редактировать ]COM-взаимодействие для существующего COM-компонента можно создать с помощью Tlbimp.exe
инструмент, входящий в состав .NET Framework SDK. Этот инструмент создаст набор прокси-классов, реализованных в CIL , которые инкапсулируются в сборку .
Подробности
[ редактировать ]COM-взаимодействие автоматически предоставляет следующие службы для упрощения использования COM из .NET:
- Преобразование между типами COM и эквивалентными типами .NET.
- Перевод
retval
аргументы в возвращаемые значения. - Перевод возвращаемых значений HRESULT в исключения.
Ссылки
[ редактировать ]- Документация .NET Framework в MSDN — COM Interop
- Regasm.exe (инструмент регистрации сборок)
- Tlbimp.exe (импортер библиотеки типов)