Compartir a través de


Habilitar tipos de .NET para la interoperación

Actualización: noviembre 2007

Si va a exponer los tipos de un ensamblado en aplicaciones COM, tenga en cuenta los requisitos de la interoperabilidad COM en tiempo de diseño. Los tipos administrados (clase, interfaz, estructura y enumeración) se integran a la perfección con los tipos COM si se cumplen las directrices siguientes:

  • Las clases deben implementar las interfaces de forma explícita.

    Si bien la interoperabilidad COM proporciona un mecanismo para generar automáticamente una interfaz con todos los miembros de la clase y los miembros de su clase base, es mucho mejor proporcionar interfaces explícitas. La interfaz generada de forma automática se denomina interfaz de clase. Para obtener instrucciones, vea Presentar la interfaz de clase.

    Puede usar Visual Basic 2005, C# y C++ para incorporar las definiciones de interfaz en el código, en vez de tener que utilizar el lenguaje de definición de interfaz (IDL) o su equivalente. Para obtener información detallada sobre la sintaxis, consulte la documentación del lenguaje.

  • Los tipos administrados deben ser públicos.

    Sólo se registran y se exportan a la biblioteca de tipos los tipos públicos de un ensamblado. Como consecuencia, sólo son visibles para COM los tipos públicos.

    Los tipos administrados exponen características en otro código administrado que podría no exponerse en COM. Por ejemplo, los constructores con parámetros, los métodos estáticos y los campos constantes no se exponen en los clientes COM. Además, mientras el motor de tiempo de ejecución calcula las referencias de datos dentro y fuera de un tipo, puede ocurrir que los datos se copien o se transformen.

  • Los métodos, propiedades, campos y eventos deben ser públicos.

    Los miembros de tipos públicos han de ser públicos también a fin de que sean visibles para COM. Puede restringirse la visibilidad de un ensamblado, un tipo público o miembros públicos de un tipo público aplicando ComVisibleAttribute. De forma predeterminada, todos los tipos y miembros públicos son visibles.

  • Los tipos deben tener un constructor público predeterminado que se active desde COM.

    Los tipos públicos administrados son visibles para COM. Sin embargo, sin un constructor público predeterminado (un constructor sin argumentos), los clientes COM no pueden crear el tipo. Los clientes COM pueden, a pesar de todo, utilizar el tipo si se activa por otros medios.

  • Los tipos no pueden ser abstractos.

    Ni los clientes COM ni los clientes .NET pueden crear tipos abstractos.

Cuando se exporta a COM, la jerarquía de herencia de un tipo administrado se elimina. El control de versiones también es distinto en función de que el entorno sea administrado o no administrado. Los tipos expuestos a COM no tienen las mismas características de control de versiones que otros tipos administrados.

Vea también

Conceptos

Exponer componentes de .NET Framework en COM

Presentar la interfaz de clase

Aplicar atributos de interoperabilidad

Empaquetar un ensamblado para COM

Referencia

ComVisibleAttribute