Compartir vía


InterfaceTypeAttribute Clase

Definición

Indica si una interfaz administrada es dual, de sólo distribución o sólo IUnknown cuando se expone a COM.

public ref class InterfaceTypeAttribute sealed : Attribute
[System.AttributeUsage(System.AttributeTargets.Interface, Inherited=false)]
public sealed class InterfaceTypeAttribute : Attribute
[System.AttributeUsage(System.AttributeTargets.Interface, Inherited=false)]
[System.Runtime.InteropServices.ComVisible(true)]
public sealed class InterfaceTypeAttribute : Attribute
[<System.AttributeUsage(System.AttributeTargets.Interface, Inherited=false)>]
type InterfaceTypeAttribute = class
    inherit Attribute
[<System.AttributeUsage(System.AttributeTargets.Interface, Inherited=false)>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type InterfaceTypeAttribute = class
    inherit Attribute
Public NotInheritable Class InterfaceTypeAttribute
Inherits Attribute
Herencia
InterfaceTypeAttribute
Atributos

Ejemplos

En el ejemplo siguiente se muestra cómo controla cómo InterfaceTypeAttribute se expone la interfaz a COM.

using namespace System::Runtime::InteropServices;

//Interface is exposed to COM as dual.
interface class IMyInterface1{};

//Insert code here.
//Interface is exposed to COM as IDispatch.

[InterfaceTypeAttribute(ComInterfaceType::InterfaceIsIDispatch)]
interface class IMyInterface2{};
//Insert code here.
using System.Runtime.InteropServices;

//Interface is exposed to COM as dual.
interface IMyInterface1
{
    //Insert code here.
}

//Interface is exposed to COM as IDispatch.
[InterfaceTypeAttribute(ComInterfaceType.InterfaceIsIDispatch)]
interface IMyInterface2
{
    //Insert code here.
}
Imports System.Runtime.InteropServices

'Interface is exposed to COM as dual.
Interface IMyInterface1
     'Insert code here.
End Interface

'Interface is exposed to COM as IDispatch.
<InterfaceTypeAttribute(ComInterfaceType.InterfaceIsIDispatch)> _
Interface IMyInterface2
    'Insert code here.
End Interface

Comentarios

Puede aplicar este atributo a interfaces.

De forma predeterminada, el Tlbexp.exe (Exportador de biblioteca de tipos) expone una interfaz administrada a COM como una interfaz dual, lo que le proporciona la flexibilidad del enlace en tiempo de ejecución o el rendimiento del enlace anticipado. La ComInterfaceType enumeración permite invalidar el comportamiento predeterminado y especificar solo el enlace en tiempo de compilación o el enlace anticipado. Por ejemplo, puede aplicar InterfaceType (ComInterfaceType.InterfaceIsIDispatch) a una interfaz para generar metadatos para restringir a los autores de llamadas solo al enlace en tiempo de ejecución. Aunque las interfaces que derivan de la IDispatch interfaz suelen ser duales, el miembro de InterfaceIsIDispatch enumeración solo permite llamadas enlazadas en tiempo de ejecución a los métodos de interfaz. Este atributo no tiene ningún efecto en la vista administrada de la interfaz. Para obtener más información sobre cómo se exponen las interfaces a COM, vea Conversión de tipos exportados.

El Tlbimp.exe (Importador de biblioteca de tipos) también aplica este atributo a las interfaces importadas y no duales; aplica el miembro de enumeración adecuado para indicar que la interfaz es solo de envío o IUnknown -only.

Constructores

InterfaceTypeAttribute(ComInterfaceType)

Inicializa una nueva instancia de la clase InterfaceTypeAttribute con el miembro de enumeración ComInterfaceType especificado.

InterfaceTypeAttribute(Int16)

Inicializa una nueva instancia de la clase InterfaceTypeAttribute con el miembro de enumeración ComInterfaceType especificado.

Propiedades

TypeId

Cuando se implementa en una clase derivada, obtiene un identificador único para este Attribute.

(Heredado de Attribute)
Value

Obtiene el valor de ComInterfaceType que describe la forma en que la interfaz debe exponerse a COM.

Métodos

Equals(Object)

Devuelve un valor que indica si esta instancia es igual que un objeto especificado.

(Heredado de Attribute)
GetHashCode()

Devuelve el código hash de esta instancia.

(Heredado de Attribute)
GetType()

Obtiene el Type de la instancia actual.

(Heredado de Object)
IsDefaultAttribute()

Si se reemplaza en una clase derivada, indica si el valor de esta instancia es el valor predeterminado de la clase derivada.

(Heredado de Attribute)
Match(Object)

Cuando se invalida en una clase derivada, devuelve un valor que indica si esta instancia es igual a un objeto especificado.

(Heredado de Attribute)
MemberwiseClone()

Crea una copia superficial del Object actual.

(Heredado de Object)
ToString()

Devuelve una cadena que representa el objeto actual.

(Heredado de Object)

Implementaciones de interfaz explícitas

_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

Asigna un conjunto de nombres a un conjunto correspondiente de identificadores de envío.

(Heredado de Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Obtiene la información de tipos de un objeto, que puede utilizarse para obtener la información de tipos de una interfaz.

(Heredado de Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Recupera el número de interfaces de información de tipo que proporciona un objeto (0 ó 1).

(Heredado de Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Proporciona acceso a las propiedades y los métodos expuestos por un objeto.

(Heredado de Attribute)

Se aplica a

Consulte también