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 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
- 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. Para obter informações adicionais sobre como as interfaces são expostas ao COM, consulte a Conversão de Tipo Exportado).
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) |