InterfaceTypeAttribute Classe
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Indica se uma interface gerida é dual, apenas de despacho 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 seguinte 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
Observações
Pode aplicar este atributo às interfaces.
Por defeito, o Tlbexp.exe (Type Library Exporter) expõe uma interface gerida ao COM como uma interface dupla, dando-lhe a flexibilidade de binding tardia ou o desempenho de binding inicial. A ComInterfaceType enumeração permite-lhe sobrepor o comportamento padrão e especificar apenas binding tardio ou apenas ligação antecipada. Por exemplo, pode aplicar InterfaceType (ComInterfaceType.InterfaceIsIDispatch) a uma interface a produção de metadados para restringir os chamadores apenas a binding tardio. Embora as interfaces que derivam da IDispatch interface sejam frequentemente duplas, o InterfaceIsIDispatch membro de enumeração permite apenas chamadas de ligação tardia aos métodos da interface. Este atributo não tem qualquer efeito na visualização gerida da interface. Para informações adicionais sobre como as interfaces são expostas ao COM, veja Conversão de Tipos Exportadas.
O Tlbimp.exe (Type Library Importer) também aplica este atributo a interfaces importadas e não duais; Aplica o membro de enumeração apropriado para indicar que a interface é apenas de despacho ou IUnknownapenas.
Construtores
| Name | 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
| Name | Description |
|---|---|
| TypeId |
Quando implementado numa classe derivada, obtém um identificador único para esta Attribute. (Herdado de Attribute) |
| Value |
Obtém o ComInterfaceType valor que descreve como a interface deve ser exposta ao COM. |
Métodos
| Name | Description |
|---|---|
| Equals(Object) |
Devolve um valor que indica se esta instância é igual a um objeto especificado. (Herdado de Attribute) |
| GetHashCode() |
Devolve o código de hash para esta instância. (Herdado de Attribute) |
| GetType() |
Obtém o Type da instância atual. (Herdado de Object) |
| IsDefaultAttribute() |
Quando sobrescrito numa classe derivada, indica se o valor desta instância é o valor padrão para a classe derivada. (Herdado de Attribute) |
| Match(Object) |
Quando sobrescrito numa classe derivada, devolve um valor que indica se esta instância é igual a um objeto especificado. (Herdado de Attribute) |
| MemberwiseClone() |
Cria uma cópia superficial do atual Object. (Herdado de Object) |
| ToString() |
Devolve uma cadeia que representa o objeto atual. (Herdado de Object) |
Implementações de Interface Explícita
| Name | Description |
|---|---|
| _Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) |
Mapeia um conjunto de nomes para um conjunto correspondente de identificadores de despacho. (Herdado de Attribute) |
| _Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) |
Recupera a informação de tipo de um objeto, que pode ser usada para obter a informação de tipo para uma interface. (Herdado de Attribute) |
| _Attribute.GetTypeInfoCount(UInt32) |
Recupera o número de interfaces de informações de tipo que um objeto fornece (0 ou 1). (Herdado de Attribute) |
| _Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) |
Proporciona acesso a propriedades e métodos expostos por um objeto. (Herdado de Attribute) |