Aplicar atributos de interoperabilidad

Actualización: noviembre 2007

El espacio de nombres System.Runtime.InteropServices proporciona tres categorías de atributos específicos de la interoperabilidad: los que el usuario aplica en tiempo de diseño, los que las API y las herramientas de interoperabilidad COM aplican durante el proceso de conversión y los que aplica el usuario o la interoperabilidad COM.

Si no está familiarizado con la tarea de aplicar atributos al código administrado, vea Extender metadatos mediante atributos. Del mismo modo que se aplican otros atributos personalizados, los atributos específicos de la interoperabilidad pueden aplicarse a tipos, métodos, propiedades, parámetros, campos y otros miembros.

Atributos en tiempo de diseño

Se puede ajustar el resultado del proceso de conversión realizado por las API y las herramientas de interoperabilidad COM utilizando atributos en tiempo de diseño. En la siguiente tabla se describen los atributos que se pueden aplicar al código fuente administrado. En alguna ocasión, las herramientas de interoperabilidad COM podrían aplicar también los atributos descritos en esta tabla.

Atributo

Descripción

AutomationProxyAttribute

Especifica si las referencias del tipo deben calcularse utilizando el contador de referencias de automatización o un proxy y un código auxiliar personalizados.

ClassInterfaceAttribute

Controla el tipo de interfaz generada para una clase.

CoClassAttribute

Identifica el CLSID de la coclase original importada de una biblioteca de tipos.

Las herramientas de interoperabilidad COM aplican normalmente este atributo.

ComImportAttribute

Indica que una definición de interfaz o coclase se importó desde una biblioteca de tipos COM. El motor en tiempo de ejecución utiliza este indicador para conocer la forma de activar el tipo y de calcular sus referencias. Este atributo impide que el tipo vuelva a exportarse a la biblioteca de tipos.

Las herramientas de interoperabilidad COM aplican normalmente este atributo.

ComRegisterFunctionAttribute

Indica que debe llamarse a un método cuando el ensamblado se registra para su uso desde COM, de modo que el código escrito por el usuario pueda ejecutarse durante el proceso de registro.

ComSourceInterfacesAttribute

Identifica las interfaces que son orígenes de eventos para la clase.

Las herramientas de interoperabilidad COM pueden aplicar este atributo.

ComUnregisterFunctionAttribute

Indica que debe llamarse a un método cuando se anula el registro del ensamblado desde COM, de modo que el código escrito por el usuario pueda ejecutarse durante el proceso.

ComVisibleAttribute

Hace que los tipos no sean visibles para COM cuando el valor del atributo es false. Este atributo puede aplicarse a un tipo individual o a todo un ensamblado para controlar la visibilidad de COM. De forma predeterminada, todos los tipos públicos administrados son visibles; este atributo no es necesario para hacerlos visibles.

DispIdAttribute

Especifica el identificador de envío (DISPID) COM de un método o campo. Este atributo contiene el identificador de envío del método, campo o propiedad que describe.

Las herramientas de interoperabilidad COM pueden aplicar este atributo.

FieldOffsetAttribute

Indica la posición física de cada campo dentro de una clase cuando se utiliza con StructLayoutAttribute y LayoutKind está establecido en Explicit.

GuidAttribute

Especifica el identificador único global (GUID) de una clase, de una interfaz o de toda una biblioteca de tipos. La cadena que se pasa al atributo debe tener el formato de un argumento de constructor aceptable para el tipo System.Guid.

Las herramientas de interoperabilidad COM pueden aplicar este atributo.

IDispatchImpAttribute

Indica la implementación de la interfaz IDispatch que Common Language Runtime utiliza cuando expone interfaces duales e interfaces Dispinterface en COM.

InAttribute

Indica que el cálculo de referencias de los datos debe realizarse en el llamador. Puede utilizarse en parámetros de atributo.

InterfaceTypeAttribute

Controla la forma en que una interfaz administrada se expone en los clientes COM (dual, derivada de Iunknown o sólo IDispatch).

Las herramientas de interoperabilidad COM pueden aplicar este atributo.

LCIDConversionAttribute

Indica que un prototipo de método no administrado espera un parámetro LCID.

Las herramientas de interoperabilidad COM pueden aplicar este atributo.

MarshalAsAttribute

Indica la forma en que deben calcularse las referencias a los datos de campos o parámetros entre el código administrado y el código no administrado. Este atributo es siempre opcional ya que cada tipo de datos tiene un comportamiento predeterminado para el cálculo de referencias.

Las herramientas de interoperabilidad COM pueden aplicar este atributo.

OptionalAttribute

Indica que un parámetro es opcional.

Las herramientas de interoperabilidad COM pueden aplicar este atributo.

OutAttribute

Indica que las referencias a los datos de un campo o parámetro deben calcularse desde el objeto destinatario de la llamada al llamador.

PreserveSigAttribute

Suprime la transformación del prototipo de retval o HRESULT que tiene lugar normalmente durante las llamadas de interoperabilidad. El atributo afecta al cálculo de referencias y a la exportación de bibliotecas de tipos.

Las herramientas de interoperabilidad COM pueden aplicar este atributo.

ProgIdAttribute

Especifica el identificador de programa (ProgID) de una clase de .NET Framework. Puede utilizarse en las clases de atributo.

StructLayoutAttribute

Controla la distribución física de los campos de una clase.

Las herramientas de interoperabilidad COM pueden aplicar este atributo.

Atributos de la herramienta de conversión

En la siguiente tabla se describen los atributos que las herramientas de interoperabilidad COM aplican durante el proceso de conversión. Estos atributos no se aplican en tiempo de diseño.

Atributo

Descripción

ComAliasNameAttribute

Indica el alias COM de un tipo de campo o parámetro. Este atributo puede aplicarse a parámetros, campos o valores devueltos.

ComConversionLossAttribute

Indica que se perdió información acerca de una clase o interfaz al importarse desde una biblioteca de tipos a un ensamblado.

ComEventInterfaceAttribute

Identifica la interfaz de origen y la clase que implementa los métodos de la interfaz de eventos.

ImportedFromTypeLibAttribute

Indica que el ensamblado se importó originalmente desde una biblioteca de tipos COM. Este atributo contiene la definición de biblioteca de tipos de la biblioteca de tipos original.

TypeLibFuncAttribute

Contiene FUNCFLAGS que se importaron originalmente para esta función desde la biblioteca de tipos COM.

TypeLibTypeAttribute

Contiene TYPEFLAGS que se importaron originalmente para este tipo desde la biblioteca de tipos COM.

TypeLibVarAttribute

Contiene VARFLAGS que se importaron originalmente para esta variable desde la biblioteca de tipos COM.

Vea también

Conceptos

Exponer componentes de .NET Framework en COM

Habilitar tipos de .NET para la interoperación

Empaquetar un ensamblado para COM

Referencia

System.Runtime.InteropServices

Otros recursos

Extender metadatos mediante atributos