InterfaceTypeAttribute Classe

Definição

Indica se uma interface gerenciada é dupla, somente expedição 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 a seguir 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

Comentários

Você pode aplicar esse atributo a interfaces.

Por padrão, o Tlbexp.exe (Exportador da Biblioteca de Tipos) expõe uma interface gerenciada para COM como uma interface dupla, proporcionando a flexibilidade da associação tardia ou do desempenho da associação antecipada. A ComInterfaceType enumeração permite que você substitua o comportamento padrão e especifique apenas a associação tardia ou somente a associação antecipada. Por exemplo, você pode aplicar InterfaceType (ComInterfaceType.InterfaceIsIDispatch) a uma interface para produzir metadados para restringir os chamadores somente à associação tardia. Embora as interfaces derivadas da IDispatch interface geralmente sejam duplas, o membro de InterfaceIsIDispatch enumeração permite apenas chamadas com limite tardio para os métodos de interface. Esse atributo não tem efeito na exibição gerenciada da interface.

O Tlbimp.exe (Importador de Biblioteca de Tipos) também aplica esse atributo a interfaces não pontuais importadas; aplica o membro de enumeração apropriado para indicar que a interface é somente expedição ou IUnknown somente.

Construtores

Nome 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

Nome Description
TypeId

Quando implementado em uma classe derivada, obtém um identificador exclusivo para esse Attribute.

(Herdado de Attribute)
Value

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

Métodos

Nome Description
Equals(Object)

Retorna um valor que indica se essa instância é igual a um objeto especificado.

(Herdado de Attribute)
GetHashCode()

Retorna o código hash dessa instância.

(Herdado de Attribute)
GetType()

Obtém o Type da instância atual.

(Herdado de Object)
IsDefaultAttribute()

Quando substituído em uma classe derivada, indica se o valor dessa instância é o valor padrão para a classe derivada.

(Herdado de Attribute)
Match(Object)

Quando substituído em uma classe derivada, retorna um valor que indica se essa instância é igual a um objeto especificado.

(Herdado de Attribute)
MemberwiseClone()

Cria uma cópia superficial do Objectatual.

(Herdado de Object)
ToString()

Retorna uma cadeia de caracteres que representa o objeto atual.

(Herdado de Object)

Implantações explícitas de interface

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

Mapeia um conjunto de nomes para um conjunto correspondente de identificadores de expedição.

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

Recupera as informações de tipo de um objeto, que podem ser usadas para obter as informações de tipo de uma interface.

(Herdado de Attribute)
_Attribute.GetTypeInfoCount(UInt32)

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

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

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

(Herdado de Attribute)

Aplica-se a

Confira também