Aplicar 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, vea Extender metadatos mediante atributos. Al igual que otros atributos personalizados, puede aplicar atributos específicos de interoperabilidad a tipos, métodos, propiedades, parámetros, campos y otros miembros.
Atributos en tiempo de diseño
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 se pueden aplicar al código fuente administrado. En ocasiones, es posible que las herramientas de interoperabilidad COM también apliquen 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 aplican normalmente este atributo. |
ComImportAttribute | Indica que una definición de interfaz o coclase se importó 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 vuelva a exportar a una 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, por lo que se puede ejecutar código escrito por el usuario 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, para que se pueda ejecutar código escrito por el usuario durante el proceso. |
ComVisibleAttribute | Representa tipos visibles para 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 de COM. De forma predeterminada, todos los tipos públicos son visibles; no se necesita el atributo para hacerlos visibles. |
DispIdAttribute | Especifica el identificador de envío (DISPID) de COM de un método o campo. Este atributo contiene el DISPID para el método, campo o propiedad que describe. Las herramientas de interoperabilidad COM pueden aplicar este atributo. |
ComDefaultInterfaceAttribute | Indica la interfaz predeterminada para 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 que se pasa al atributo debe tener un formato que sea un argumento de constructor aceptable para el tipo de 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 parámetros de atributo. |
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 administrado espera un parámetro LCID. Las herramientas de interoperabilidad COM pueden aplicar este atributo. |
MarshalAsAttribute | Indica cómo se deben serializar los datos de campos o parámetros entre código administrado y no administrado. El atributo siempre es opcional porque cada tipo de datos tiene el comportamiento de serializació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 valor ProgID de una clase de .NET. Se puede usar para clases de atributos. |
StructLayoutAttribute | Controla el diseño físico de los campos de una clase. Las herramientas de interoperabilidad COM pueden aplicar este atributo. |
Atributos de la herramienta de conversión
En la tabla siguiente 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 parámetro o tipo de campo. Puede usarse para parámetros de atributo, campos o valores devueltos. |
ComConversionLossAttribute | Indica que se perdió la información sobre una clase o interfaz cuando se importó 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 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. |