COM Interop es una tecnología incluida en .NET Framework Common Language Runtime (CLR) que permite que los objetos del Modelo de objetos componentes (COM) interactúen con los objetos .NET y viceversa .
COM Interop tiene como objetivo proporcionar acceso a los componentes COM existentes sin necesidad de modificar el componente original. Intenta hacer que los tipos .NET sean equivalentes a los tipos COM. Además, COM Interop permite a los desarrolladores COM acceder a los objetos administrados tan fácilmente como acceden a otros objetos COM.
Herramientas de interoperabilidad
Herramientas para admitir un componente COM utilizando un ensamblado .NET
El .NET Framework crea una biblioteca de tipos y las entradas de registro especial cuando un componente está registrado. Proporciona una utilidad especializada ( RegAsm.exe
normalmente ubicada en C:\Windows\Microsoft.NET\Framework
) que exporta los tipos administrados a una biblioteca de tipos y registra el componente administrado como un componente COM tradicional. Cuando se crea una instancia del tipo a través de COM, .NET CLR es el objeto COM real que se ejecuta, y simplemente calcula las llamadas a métodos o el acceso a la propiedad a la implementación del tipo.
COM sin registro se puede utilizar para evitar el infierno de DLL .
Herramientas para admitir un ensamblado .NET mediante un componente COM
Se puede crear una interoperabilidad COM para un componente COM existente mediante el uso de la Tlbimp.exe
herramienta suministrada con .NET Framework SDK. Esta herramienta creará un conjunto de clases de proxy implementadas en CIL que se encapsula en un ensamblado .
Detalles
La interoperabilidad COM proporciona automáticamente los siguientes servicios para simplificar el uso de COM desde .NET:
- Conversión entre tipos COM y tipos .NET equivalentes.
- Traducción de
retval
argumentos en valores de retorno. - Traducción de los valores de retorno de HRESULT en excepciones.
Referencias
- Documentación de .NET Framework en MSDN - COM Interop
- Regasm.exe (herramienta de registro de ensamblado)
- Tlbimp.exe (Importador de bibliotecas de tipos)