InterfaceTypeAttribute Classe

Definição

Indica se uma interface gerida é dual, apenas de despacho ou IUnknown -only quando exposta ao 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
Herança
InterfaceTypeAttribute
Atributos

Exemplos

O exemplo seguinte mostra como InterfaceTypeAttribute controla como a interface é exposta ao 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

Observações

Pode aplicar este atributo às interfaces.

Por defeito, o Tlbexp.exe (Type Library Exporter) expõe uma interface gerida ao COM como uma interface dupla, dando-lhe a flexibilidade de binding tardia ou o desempenho de binding inicial. A ComInterfaceType enumeração permite-lhe sobrepor o comportamento padrão e especificar apenas binding tardio ou apenas ligação antecipada. Por exemplo, pode aplicar InterfaceType (ComInterfaceType.InterfaceIsIDispatch) a uma interface a produção de metadados para restringir os chamadores apenas a binding tardio. Embora as interfaces que derivam da IDispatch interface sejam frequentemente duplas, o InterfaceIsIDispatch membro de enumeração permite apenas chamadas de ligação tardia aos métodos da interface. Este atributo não tem qualquer efeito na visualização gerida da interface. Para informações adicionais sobre como as interfaces são expostas ao COM, veja Conversão de Tipos Exportadas.

O Tlbimp.exe (Type Library Importer) também aplica este atributo a interfaces importadas e não duais; Aplica o membro de enumeração apropriado para indicar que a interface é apenas de despacho ou IUnknownapenas.

Construtores

Name Description
InterfaceTypeAttribute(ComInterfaceType)

Inicializa uma nova instância da InterfaceTypeAttribute classe com o membro de enumeração especificado ComInterfaceType .

InterfaceTypeAttribute(Int16)

Inicializa uma nova instância da InterfaceTypeAttribute classe com o membro de enumeração especificado ComInterfaceType .

Propriedades

Name Description
TypeId

Quando implementado numa classe derivada, obtém um identificador único para esta Attribute.

(Herdado de Attribute)
Value

Obtém o ComInterfaceType valor que descreve como a interface deve ser exposta ao COM.

Métodos

Name Description
Equals(Object)

Devolve um valor que indica se esta instância é igual a um objeto especificado.

(Herdado de Attribute)
GetHashCode()

Devolve o código de hash para esta instância.

(Herdado de Attribute)
GetType()

Obtém o Type da instância atual.

(Herdado de Object)
IsDefaultAttribute()

Quando sobrescrito numa classe derivada, indica se o valor desta instância é o valor padrão para a classe derivada.

(Herdado de Attribute)
Match(Object)

Quando sobrescrito numa classe derivada, devolve um valor que indica se esta instância é igual a um objeto especificado.

(Herdado de Attribute)
MemberwiseClone()

Cria uma cópia superficial do atual Object.

(Herdado de Object)
ToString()

Devolve uma cadeia que representa o objeto atual.

(Herdado de Object)

Implementações de Interface Explícita

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

Mapeia um conjunto de nomes para um conjunto correspondente de identificadores de despacho.

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

Recupera a informação de tipo de um objeto, que pode ser usada para obter a informação de tipo para uma interface.

(Herdado de Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Recupera o número de interfaces de informações de tipo que um objeto fornece (0 ou 1).

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

Proporciona acesso a propriedades e métodos expostos por um objeto.

(Herdado de Attribute)

Aplica-se a

Ver também