Compartir a través de


Aplicación de atributos de interoperabilidad

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

Si no está familiarizado con la tarea de aplicar atributos al código administrado, consulte Extensión de metadatos mediante atributos. Al igual que otros atributos personalizados, puede aplicar atributos específicos de la interoperabilidad a tipos, métodos, propiedades, parámetros, campos y otros miembros.

atributos de Design-Time

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

Atributo Descripción
AutomationProxyAttribute Especifica si el tipo debe serializarse mediante el contador de referencias de Automation o un proxy personalizado y código auxiliar.
ClassInterfaceAttribute Controla el tipo de interfaz generada para una clase.
CoClassAttribute Identifica el CLSID de la coclase original importada desde una biblioteca de tipos.

Las herramientas de interoperabilidad COM suelen aplicar este atributo.
ComImportAttribute Indica que se importó una definición de interfaz o coclase desde una biblioteca de tipos COM. El tiempo de ejecución usa este indicador para saber cómo activar y serializar el tipo. Este atributo prohíbe que el tipo se exporte de nuevo a una biblioteca de tipos.

Las herramientas de interoperabilidad COM suelen aplicar este atributo.
ComRegisterFunctionAttribute Indica que se debe llamar a un método cuando se registra el ensamblado para su uso desde COM, de modo que el código escrito por el usuario se pueda ejecutar durante el proceso de registro.
ComSourceInterfacesAttribute Identifica interfaces que son orígenes de eventos para la clase .

Las herramientas de interoperabilidad COM pueden aplicar este atributo.
ComUnregisterFunctionAttribute Indica que se debe llamar a un método cuando se anula el registro del ensamblado desde COM, de modo que el código que ha escrito el usuario se pueda ejecutar durante el proceso.
ComVisibleAttribute Representa los tipos invisibles en COM cuando el valor del atributo es igual a false. Este atributo se puede aplicar a un tipo individual o a un ensamblado completo para controlar la visibilidad COM. De forma predeterminada, todos los tipos públicos administrados son visibles; el atributo no es necesario para que sean visibles.
DispIdAttribute Especifica el identificador de distribución COM (DISPID) de un método o campo. Este atributo contiene el DISPID para el método, el campo o la propiedad que describe.

Las herramientas de interoperabilidad COM pueden aplicar este atributo.
ComDefaultInterfaceAttribute Indica la interfaz predeterminada de una clase COM implementada en .NET.

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 usa con StructLayoutAttribute y layoutKind se establece en Explicit.
GuidAttribute Especifica el identificador único global (GUID) de una clase, interfaz o una biblioteca de tipos completa. La cadena pasada al atributo debe ser un formato que sea un argumento de constructor aceptable para el tipo System.Guid.

Las herramientas de interoperabilidad COM pueden aplicar este atributo.
IDispatchImplAttribute Indica la implementación de la interfaz IDispatch que usa el Common Language Runtime cuando expone interfaces duales e interfaces dispinterface a COM.
InAttribute Indica que los datos se deben serializar en el llamador. Se puede usar para atribuir parámetros.
InterfaceTypeAttribute Controla la forma en que se expone una interfaz administrada a los clientes COM (Dual, derivada de IUnknown o solo IDispatch).

Las herramientas de interoperabilidad COM pueden aplicar este atributo.
LCIDConversionAttribute Indica que una firma de método no administrada espera un parámetro LCID.

Las herramientas de interoperabilidad COM pueden aplicar este atributo.
MarshalAsAttribute Indica cómo se deben transferir los datos en campos o parámetros entre código administrado y no gestionado. El atributo siempre es opcional porque cada tipo de datos tiene un comportamiento de transformación predeterminado.

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 los datos de un campo o parámetro deben serializarse desde un objeto que se llama a su llamador.
PreserveSigAttribute Suprime la transformación de la firma retval o del valor HRESULT que normalmente tiene lugar durante las llamadas de interoperabilidad. El atributo afecta a la serialización, así como a la exportación de bibliotecas de tipos.

Las herramientas de interoperabilidad COM pueden aplicar este atributo.
ProgIdAttribute Especifica el ProgID de una clase .NET. Se puede usar para atribuir clases.
StructLayoutAttribute Controla el diseño físico de los campos de una clase.

Las herramientas de interoperabilidad COM pueden aplicar este atributo.

atributos de Conversion-Tool

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

Atributo Descripción
ComAliasNameAttribute Indica el alias COM de un parámetro o tipo de campo. Se puede usar para atribuir a parámetros, campos o valores devueltos.
ComConversionLossAttribute Indica que se perdió información sobre una clase o interfaz cuando se importó de 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 los FUNCFLAGS que se importaron originalmente para esta función desde la biblioteca de tipos COM.
TypeLibTypeAttribute Contiene los TYPEFLAGS que se importaron originalmente para este tipo desde la biblioteca de tipos COM.
TypeLibVarAttribute Contiene los VARFLAGS que se importaron originalmente para esta variable desde la biblioteca de tipos COM.

Consulte también