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.
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) |