InterfaceTypeAttribute Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Indica se uma interface gerenciada é dupla, somente de expedição ou somente de IUnknown
quando exposta à 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
- Atributos
Exemplos
O exemplo a seguir mostra como controla como InterfaceTypeAttribute
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 somente associação tardia ou somente associação antecipada. Por exemplo, você pode aplicar InterfaceType (ComInterfaceType.InterfaceIsIDispatch)
a uma interface para produzir metadados para restringir os chamadores apenas à associação tardia. Embora as interfaces derivadas da IDispatch
interface geralmente sejam duplas, o membro de InterfaceIsIDispatch
enumeração permite apenas chamadas de associação tardia para os métodos de interface. Esse atributo não tem efeito na exibição gerenciada da interface. Para obter informações adicionais sobre como as interfaces são expostas ao COM, consulte Conversão de tipo exportado.
O Tlbimp.exe (Importador de Biblioteca de Tipos) também aplica esse atributo a interfaces não virtuais importadas; ele aplica o membro de enumeração apropriado para indicar que a interface é somente expedição ou IUnknown
-only.
Construtores
InterfaceTypeAttribute(ComInterfaceType) |
Inicializa uma nova instância da classe InterfaceTypeAttribute com o membro de enumeração ComInterfaceType especificado. |
InterfaceTypeAttribute(Int16) |
Inicializa uma nova instância da classe InterfaceTypeAttribute com o membro de enumeração ComInterfaceType especificado. |
Propriedades
TypeId |
Quando implementado em uma classe derivada, obtém um identificador exclusivo para este Attribute. (Herdado de Attribute) |
Value |
Obtém o valor ComInterfaceType que descreve como a interface deve ser exposta a COM. |
Métodos
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 para a 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 Object atual. (Herdado de Object) |
ToString() |
Retorna uma cadeia de caracteres que representa o objeto atual. (Herdado de Object) |
Implantações explícitas de interface
_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 para um objeto, que pode ser usado para obter as informações de tipo para 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) |