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