InterfaceTypeAttribute Classe

Definição

Indica se uma interface gerenciada é dupla, somente de expedição ou somente de IUnknown quando exposta à COM.Indicates whether a managed interface is dual, dispatch-only, or IUnknown -only when exposed to 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
type InterfaceTypeAttribute = class
    inherit Attribute
Public NotInheritable Class InterfaceTypeAttribute
Inherits Attribute
Herança
InterfaceTypeAttribute
Atributos

Exemplos

O exemplo a seguir mostra como InterfaceTypeAttribute controla como a interface é exposta a COM.The following example shows how InterfaceTypeAttribute controls how the interface is exposed to 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.You can apply this attribute to interfaces.

Por padrão, o Tlbexp. exe (tipo de exportador da biblioteca de tipos) expõe uma interface gerenciada para com como uma interface dupla, dando a você a flexibilidade da ligação tardia ou do desempenho da ligação antecipada.By default, the Tlbexp.exe (Type Library Exporter) exposes a managed interface to COM as a dual interface, giving you the flexibility of late binding or the performance of early binding. A enumeração ComInterfaceType permite que você substitua o comportamento padrão e especifique somente associação tardia ou associação antecipada.The ComInterfaceType enumeration enables you to override the default behavior and specify late binding only or early binding only. Por exemplo, você pode aplicar InterfaceType (ComInterfaceType.InterfaceIsIDispatch) a uma interface para produzir metadados para restringir os chamadores apenas para associação tardia.For example, you can apply InterfaceType (ComInterfaceType.InterfaceIsIDispatch) to an interface to produce metadata to restrict callers to late binding only. Embora as interfaces que derivam da interface IDispatch geralmente são duplas, o membro de enumeração InterfaceIsIDispatch permite apenas chamadas de ligação tardia para os métodos de interface.Although interfaces that derive from the IDispatch interface are often dual, the InterfaceIsIDispatch enumeration member allows only late-bound calls to the interface methods. Esse atributo não tem efeito sobre a exibição gerenciada da interface.This attribute has no effect on the managed view of the interface. Para obter informações adicionais sobre como as interfaces são expostas para COM, consulte conversão de tipo exportado.For additional information on how interfaces are exposed to COM, see Exported Type Conversion.

O Tlbimp. exe (tipo de importador da biblioteca de tipos) também aplica esse atributo às interfaces importadas e não-duplas; Ele aplica o membro de enumeração apropriado para indicar que a interface é somente de expedição ou somente IUnknown.The Tlbimp.exe (Type Library Importer) also applies this attribute to imported, nondual interfaces; it applies the appropriate enumeration member to indicate that the interface is dispatch-only or IUnknown -only.

Construtores

InterfaceTypeAttribute(ComInterfaceType)

Inicializa uma nova instância da classe InterfaceTypeAttribute com o membro de enumeração ComInterfaceType especificado.Initializes a new instance of the InterfaceTypeAttribute class with the specified ComInterfaceType enumeration member.

InterfaceTypeAttribute(Int16)

Inicializa uma nova instância da classe InterfaceTypeAttribute com o membro de enumeração ComInterfaceType especificado.Initializes a new instance of the InterfaceTypeAttribute class with the specified ComInterfaceType enumeration member.

Propriedades

TypeId

Quando implementado em uma classe derivada, obtém um identificador exclusivo para este Attribute.When implemented in a derived class, gets a unique identifier for this Attribute.

(Herdado de Attribute)
Value

Obtém o valor ComInterfaceType que descreve como a interface deve ser exposta a COM.Gets the ComInterfaceType value that describes how the interface should be exposed to COM.

Métodos

Equals(Object)

Retorna um valor que indica se essa instância é igual a um objeto especificado.Returns a value that indicates whether this instance is equal to a specified object.

(Herdado de Attribute)
GetHashCode()

Retorna o código hash desta instância.Returns the hash code for this instance.

(Herdado de Attribute)
GetType()

Obtém o Type da instância atual.Gets the Type of the current instance.

(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.When overridden in a derived class, indicates whether the value of this instance is the default value for the derived class.

(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.When overridden in a derived class, returns a value that indicates whether this instance equals a specified object.

(Herdado de Attribute)
MemberwiseClone()

Cria uma cópia superficial do Object atual.Creates a shallow copy of the current Object.

(Herdado de Object)
ToString()

Retorna uma cadeia de caracteres que representa o objeto atual.Returns a string that represents the current object.

(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.Maps a set of names to a corresponding set of dispatch identifiers.

(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.Retrieves the type information for an object, which can be used to get the type information for an 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).Retrieves the number of type information interfaces that an object provides (either 0 or 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.Provides access to properties and methods exposed by an object.

(Herdado de Attribute)

Aplica-se a

Veja também