Esta documentación está archivada y no tiene mantenimiento.

Interoperabilidad (Guía de programación de C#)

La interoperabilidad permite conservar y aprovechar las inversiones existentes en código no administrado. El código que se ejecuta bajo el control de Common Language Runtime (CLR) se denomina "código administrado" y el código que se ejecuta fuera de CLR se denomina "código no administrado". Los componentes COM, COM+, C++, los componentes de ActiveX y la API Win32 son ejemplos de código no administrado.

.NET Framework habilita la interoperabilidad con código no administrado a través de los servicios de invocación de plataforma, el espacio de nombres System.Runtime.InteropServices y CLR, y a través de la interoperabilidad COM.

  • Hay dos maneras de utilizar las API no administradas desde el código administrado: a través de la invocación de plataforma y mediante IJW (It Just Works) en C++. La invocación de plataforma permite al código administrado llamar a funciones exportadas desde una biblioteca de vínculos dinámicos (DLL) no administrada, como la API Win32 y los archivos DLL personalizados. CLR administra la carga del archivo DLL y el cálculo de referencias de parámetros. Para conocer el rendimiento, se puede comprobar si hay una función equivalente disponible en .NET Framework en lugar de utilizar la invocación de plataforma. Para obtener más información, vea Aproximación a la invocación de plataforma.

  • La interoperabilidad COM permite al código administrado interactuar con objetos COM a través de interfaces y clientes COM. Hay dos maneras de utilizar los componentes COM del código administrado:

    • Para llamar a los componentes COM que son compatibles con la automatización OLE, utilice la interoperabilidad COM o tlbimp.exe. CLR controla la activación del componente COM y el cálculo de referencias de parámetros.

    • Para componentes COM basados en IDL, utilice IJW y C++. Cada clase pública administrada que implementa IUnknown, IDispatch y otras interfaces COM estándar, se pueden llamar desde un código no administrado a través de la interoperabilidad COM. Para obtener más información, vea Migración e interoperabilidad de componentes COM/Microsoft .NET.

Para obtener más información, vea Interoperar con código no administrado y Mejorar rendimiento de interoperabilidad.

Tanto PInvoke como la interoperabilidad COM utilizan cálculo de referencias para traducir los argumentos como enteros, cadenas, matrices, estructuras y punteros entre el código administrado y no administrado. Para obtener más información, vea Información general acerca del cálculo de referencia de interoperabilidad.

Para obtener más información, vea las secciones siguientes de Especificación del lenguaje C#.

  • 10.5.7 Métodos externos

  • 17.5 Atributos para la interoperabilidad

  • 18.8 Asignación dinámica de memoria

Mostrar: