InterfaceTypeAttribute Classe

Definizione

Indica se un'interfaccia gestita è del tipo dual, dispatch-only o solo IUnknown durante l'esposizione a 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)]
[System.Runtime.InteropServices.ComVisible(true)]
public sealed class InterfaceTypeAttribute : Attribute
type InterfaceTypeAttribute = class
    inherit Attribute
Public NotInheritable Class InterfaceTypeAttribute
Inherits Attribute
Ereditarietà
InterfaceTypeAttribute
Attributi

Esempi

Nell'esempio seguente viene illustrato InterfaceTypeAttribute come controlla la modalità di esposizione dell'interfaccia 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

Commenti

Questo attributo può essere applicato alle interfacce.You can apply this attribute to interfaces.

Per impostazione predefinita, Tlbexp. exe (utilità di esportazione della libreria dei tipi) espone un'interfaccia gestita a com come interfaccia duale, offrendo la flessibilità di associazione tardiva o le prestazioni dell'associazione anticipata.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. L' ComInterfaceType enumerazione consente di eseguire l'override del comportamento predefinito e di specificare solo associazione tardiva o solo associazione anticipata.The ComInterfaceType enumeration enables you to override the default behavior and specify late binding only or early binding only. Ad esempio, è possibile applicare InterfaceType (ComInterfaceType.InterfaceIsIDispatch) a un'interfaccia per produrre metadati per limitare i chiamanti al solo associazione tardiva.For example, you can apply InterfaceType (ComInterfaceType.InterfaceIsIDispatch) to an interface to produce metadata to restrict callers to late binding only. Sebbene le interfacce che derivano IDispatch dall'interfaccia siano spesso duali InterfaceIsIDispatch , il membro di enumerazione consente solo chiamate ad associazione tardiva ai metodi di interfaccia.Although interfaces that derive from the IDispatch interface are often dual, the InterfaceIsIDispatch enumeration member allows only late-bound calls to the interface methods. Questo attributo non ha alcun effetto sulla visualizzazione gestita dell'interfaccia.This attribute has no effect on the managed view of the interface. Per ulteriori informazioni sul modo in cui le interfacce sono esposte a COM, vedere conversione di tipiesportati.For additional information on how interfaces are exposed to COM, see Exported Type Conversion.

Tlbimp. exe (utilità di importazione della libreria dei tipi) applica anche questo attributo alle interfacce importate e non duali. applica il membro di enumerazione appropriato per indicare che l'interfaccia è solo dispatch o IUnknown -only.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.

Costruttori

InterfaceTypeAttribute(ComInterfaceType)

Inizializza una nuova istanza della classe InterfaceTypeAttribute con il membro di enumerazione ComInterfaceType specificato.Initializes a new instance of the InterfaceTypeAttribute class with the specified ComInterfaceType enumeration member.

InterfaceTypeAttribute(Int16)

Inizializza una nuova istanza della classe InterfaceTypeAttribute con il membro di enumerazione ComInterfaceType specificato.Initializes a new instance of the InterfaceTypeAttribute class with the specified ComInterfaceType enumeration member.

Proprietà

TypeId

Quando è implementata in una classe derivata, ottiene un identificatore univoco della classe Attribute.When implemented in a derived class, gets a unique identifier for this Attribute.

(Ereditato da Attribute)
Value

Ottiene il valore ComInterfaceType che descrive come esporre l'interfaccia a COM.Gets the ComInterfaceType value that describes how the interface should be exposed to COM.

Metodi

Equals(Object)

Restituisce un valore che indica se questa istanza è uguale a un oggetto specificato.Returns a value that indicates whether this instance is equal to a specified object.

(Ereditato da Attribute)
GetHashCode()

Restituisce il codice hash per l'istanza.Returns the hash code for this instance.

(Ereditato da Attribute)
GetType()

Ottiene l'oggetto Type dell'istanza corrente.Gets the Type of the current instance.

(Ereditato da Object)
IsDefaultAttribute()

In caso di override in una classe derivata, indica se il valore di questa istanza è il valore predefinito per la classe derivata.When overridden in a derived class, indicates whether the value of this instance is the default value for the derived class.

(Ereditato da Attribute)
Match(Object)

Quando è sottoposto a override in una classe derivata, restituisce un valore che indica se questa istanza equivale a un oggetto specificato.When overridden in a derived class, returns a value that indicates whether this instance equals a specified object.

(Ereditato da Attribute)
MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.Creates a shallow copy of the current Object.

(Ereditato da Object)
ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.Returns a string that represents the current object.

(Ereditato da Object)

Implementazioni dell'interfaccia esplicita

_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

Esegue il mapping di un set di nomi a un set corrispondente di ID dispatch.Maps a set of names to a corresponding set of dispatch identifiers.

(Ereditato da Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Recupera le informazioni sul tipo relative a un oggetto, che possono essere usate per ottenere informazioni sul tipo relative a un'interfaccia.Retrieves the type information for an object, which can be used to get the type information for an interface.

(Ereditato da Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Recupera il numero delle interfacce di informazioni sul tipo fornite da un oggetto (0 o 1).Retrieves the number of type information interfaces that an object provides (either 0 or 1).

(Ereditato da Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Fornisce l'accesso a proprietà e metodi esposti da un oggetto.Provides access to properties and methods exposed by an object.

(Ereditato da Attribute)

Si applica a

Vedi anche