Classe InterfaceTypeAttribute
Dica
The .NET API Reference documentation has a new home. Visit the .NET API Browser on docs.microsoft.com to see the new experience.
Indica se uma interface gerenciada é dupla, somente de expedição ou somente de IUnknown quando exposta à COM.
Namespace: System.Runtime.InteropServices
Assembly: mscorlib (em mscorlib.dll)
Hierarquia de Herança
System.Object
System.Attribute
System.Runtime.InteropServices.InterfaceTypeAttribute
Sintaxe
[AttributeUsageAttribute(AttributeTargets.Interface, Inherited = false)]
[ComVisibleAttribute(true)]
public sealed class InterfaceTypeAttribute : Attribute
[AttributeUsageAttribute(AttributeTargets::Interface, Inherited = false)]
[ComVisibleAttribute(true)]
public ref class InterfaceTypeAttribute sealed : Attribute
[<Sealed>]
[<AttributeUsageAttribute(AttributeTargets.Interface, Inherited = false)>]
[<ComVisibleAttribute(true)>]
type InterfaceTypeAttribute =
class
inherit Attribute
end
<AttributeUsageAttribute(AttributeTargets.Interface, Inherited := False)>
<ComVisibleAttribute(True)>
Public NotInheritable Class InterfaceTypeAttribute
Inherits Attribute
Construtores
Nome | Descrição | |
---|---|---|
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
Nome | Descrição | |
---|---|---|
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
Nome | Descrição | |
---|---|---|
Equals(Object) | Esta API dá suporte à infraestrutura produto e não se destina a ser usada diretamente do seu código. Retorna um valor que indica se essa instância é igual a um objeto especificado.(Herdado de Attribute.) |
|
GetHashCode() | Retorna o código hash para essa instância.(Herdado de Attribute.) |
|
GetType() | ||
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.) |
|
ToString() | Retorna uma cadeia de caracteres que representa o objeto atual.(Herdado de Object.) |
Implementações Explícitas da Interface
Nome | Descrição | |
---|---|---|
_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.) |
Comentários
Você pode aplicar esse atributo para interfaces.
Por padrão, o Tlbexp.exe (Exportador de Biblioteca de Tipos) expõe uma interface gerenciada COM como uma interface dupla, dando a você a flexibilidade de associação tardia ou o desempenho da ligação atual. O ComInterfaceType enumeração permite que você substituir o comportamento padrão e especificar a associação tardia ou associação inicial. Por exemplo, você pode aplicar InterfaceType (ComInterfaceType.InterfaceIsIDispatch) a uma interface para produzir os metadados para restringir os chamadores a associação tardia somente. Embora interfaces que derivam de IDispatch interface costumam ser dupla, o InterfaceIsIDispatch membro de enumeração permite apenas chamadas de associação tardia para métodos da interface. Esse atributo não tem nenhum efeito no modo de exibição gerenciado 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 se aplica esse atributo importado, as interfaces nondual; ele aplica o membro de enumeração apropriado para indicar que a interface é somente de expedição ou IUnknown -somente.
Exemplos
A exemplo a seguir mostra como InterfaceTypeAttribute controla como a interface é exposta a COM.
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
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.
Informações de Versão
Plataforma Universal do Windows
Disponível desde 8
.NET Framework
Disponível desde 1.1
Biblioteca de Classes Portátil
Com suporte no: plataformas portáteis do .NET
Silverlight
Disponível desde 2.0
Windows Phone Silverlight
Disponível desde 7.0
Windows Phone
Disponível desde 8.1
Acesso thread-safe
Quaisquer membros estáticos públicos ( Compartilhado no Visual Basic) desse tipo são thread-safe. Não há garantia de que qualquer membro de instância seja thread-safe.
Confira Também
ComInterfaceType
Namespace System.Runtime.InteropServices
Tlbexp.exe (Exportador de Biblioteca de Tipos)
Tlbimp.exe (Importador de Biblioteca de Tipos)
Retornar ao início