Aplicar atributos de interoperabilidad
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 |
---|---|
Especifica si las referencias del tipo deben calcularse utilizando Automation Marshaler o un proxy y un código auxiliar personalizados. |
|
Controla el tipo de interfaz generada para una clase. |
|
Identifica el CLSID de la coclase original importada de una biblioteca de tipos. Las herramientas de interoperabilidad COM aplican normalmente este atributo. |
|
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 marcador 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. |
|
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. |
|
Identifica las interfaces que son orígenes de eventos para la clase. Las herramientas de interoperabilidad COM pueden aplicar este atributo. |
|
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. |
|
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. |
|
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. |
|
Indica la posición física de cada campo dentro de una clase cuando se utiliza con StructLayoutAttribute y LayoutKind está establecido en Explicit. |
|
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. |
|
Indica la implementación de la interfaz IDispatch que Common Language Runtime utiliza cuando expone interfaces duales e interfaces Dispinterface en COM. |
|
Indica que el cálculo de referencias de los datos debe realizarse en el llamador. Puede utilizarse en parámetros de atributo. |
|
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. |
|
Indica que un prototipo de método no administrado espera un parámetro LCID. Las herramientas de interoperabilidad COM pueden aplicar este atributo. |
|
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. |
|
Indica que un parámetro es opcional. Las herramientas de interoperabilidad COM pueden aplicar este atributo. |
|
Indica que las referencias a los datos de un campo o parámetro deben calcularse desde el objeto destinatario de la llamada al llamador. |
|
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. |
|
Especifica el identificador de programa (ProgID) de una clase de .NET Framework. Puede utilizarse en las clases de atributos. |
|
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 |
---|---|
Indica el alias COM del tipo de parámetro o campo. Este atributo puede aplicarse a parámetros, campos o valores devueltos. |
|
Indica que se perdió información acerca de una clase o interfaz al importarse desde una biblioteca de tipos a un ensamblado. |
|
Identifica la interfaz de origen y la clase que implementa los métodos de la interfaz de eventos. |
|
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. |
|
Contiene FUNCFLAGS que se importaron originalmente para esta función desde la biblioteca de tipos COM. |
|
Contiene TYPEFLAGS que se importaron originalmente para este tipo desde la biblioteca de tipos COM. |
|
Contiene VARFLAGS que se importaron originalmente para esta variable desde la biblioteca de tipos COM. |
Vea también
Referencia
System.Runtime.InteropServices
Conceptos
Exponer componentes de .NET Framework en COM
Extender metadatos mediante atributos