InterfaceTypeAttribute Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Indica se un'interfaccia gestita è doppia, solo dispatch o IUnknown -only quando viene esposta a 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
- Ereditarietà
- Attributi
Esempio
Nell'esempio seguente viene illustrato come InterfaceTypeAttribute controlla la modalità di esposizione dell'interfaccia a 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
È possibile applicare questo attributo alle interfacce.
Per impostazione predefinita, il Tlbexp.exe (utilità di esportazione della libreria dei tipi) espone un'interfaccia gestita a COM come interfaccia doppia, offrendo la flessibilità dell'associazione tardiva o le prestazioni dell'associazione anticipata. L'enumerazione ComInterfaceType consente di eseguire l'override del comportamento predefinito e di specificare solo l'associazione tardiva o l'associazione anticipata. Ad esempio, è possibile applicare InterfaceType (ComInterfaceType.InterfaceIsIDispatch) a un'interfaccia per produrre metadati per limitare i chiamanti solo all'associazione tardiva. Anche se le interfacce che derivano dall'interfaccia IDispatch sono spesso duali, il InterfaceIsIDispatch membro di enumerazione consente solo chiamate ad associazione tardiva ai metodi di interfaccia. Questo attributo non ha alcun effetto sulla visualizzazione gestita dell'interfaccia. Per altre informazioni su come le interfacce vengono esposte a COM, vedere Conversione dei tipi esportati.
Il Tlbimp.exe (utilità di importazione della libreria dei tipi) applica anche questo attributo alle interfacce importate e non testuali; applica il membro di enumerazione appropriato per indicare che l'interfaccia è solo dispatch-only o IUnknown -only.
Costruttori
| Nome | Descrizione |
|---|---|
| InterfaceTypeAttribute(ComInterfaceType) |
Inizializza una nuova istanza della InterfaceTypeAttribute classe con il membro di enumerazione specificato ComInterfaceType . |
| InterfaceTypeAttribute(Int16) |
Inizializza una nuova istanza della InterfaceTypeAttribute classe con il membro di enumerazione specificato ComInterfaceType . |
Proprietà
| Nome | Descrizione |
|---|---|
| TypeId |
Se implementato in una classe derivata, ottiene un identificatore univoco per questo Attribute. (Ereditato da Attribute) |
| Value |
Ottiene il ComInterfaceType valore che descrive come l'interfaccia deve essere esposta a COM. |
Metodi
| Nome | Descrizione |
|---|---|
| Equals(Object) |
Restituisce un valore che indica se questa istanza è uguale a un oggetto specificato. (Ereditato da Attribute) |
| GetHashCode() |
Restituisce il codice hash per questa istanza. (Ereditato da Attribute) |
| GetType() |
Ottiene il Type dell'istanza corrente. (Ereditato da Object) |
| IsDefaultAttribute() |
Quando sottoposto a override in una classe derivata, indica se il valore di questa istanza è il valore predefinito per la classe derivata. (Ereditato da Attribute) |
| Match(Object) |
Quando sottoposto a override in una classe derivata, restituisce un valore che indica se questa istanza è uguale a un oggetto specificato. (Ereditato da Attribute) |
| MemberwiseClone() |
Crea una copia superficiale del Objectcorrente. (Ereditato da Object) |
| ToString() |
Restituisce una stringa che rappresenta l'oggetto corrente. (Ereditato da Object) |
Implementazioni dell'interfaccia esplicita
| Nome | Descrizione |
|---|---|
| _Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) |
Esegue il mapping di un set di nomi a un set corrispondente di identificatori dispatch. (Ereditato da Attribute) |
| _Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) |
Recupera le informazioni sul tipo per un oggetto, che può essere utilizzato per ottenere le informazioni sul tipo per un'interfaccia. (Ereditato da Attribute) |
| _Attribute.GetTypeInfoCount(UInt32) |
Recupera il numero di interfacce di informazioni sul tipo fornite da un oggetto (0 o 1). (Ereditato da Attribute) |
| _Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) |
Fornisce l'accesso alle proprietà e ai metodi esposti da un oggetto . (Ereditato da Attribute) |