InterfaceTypeAttribute Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Gibt an, ob eine verwaltete Schnittstelle dual, dispatch-only oder IUnknown -only ist, wenn sie für COM verfügbar gemacht werden.
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
- Vererbung
- Attribute
Beispiele
Das folgende Beispiel zeigt, wie gesteuert wird, wie InterfaceTypeAttribute die Schnittstelle com verfügbar gemacht wird.
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
Hinweise
Sie können dieses Attribut auf Schnittstellen anwenden.
Standardmäßig stellt der Tlbexp.exe (Type Library Exporter) eine verwaltete Schnittstelle com als duale Schnittstelle zur Verfügung, sodass Sie die Flexibilität einer verspäteten Bindung oder der Leistung einer frühen Bindung haben. Mit der ComInterfaceType Enumeration können Sie das Standardverhalten außer Kraft setzen und nur späte Bindung oder frühe Bindung angeben. Sie können z. B. auf eine Schnittstelle anwenden InterfaceType (ComInterfaceType.InterfaceIsIDispatch) , um Metadaten zu erzeugen, um Aufrufer nur auf verspätete Bindung einzuschränken. Obwohl Schnittstellen, die von der IDispatch Schnittstelle abgeleitet werden, häufig dual sind, lässt das Enumerationsmememm InterfaceIsIDispatch nur spät gebundene Aufrufe an die Schnittstellenmethoden zu. Dieses Attribut hat keine Auswirkungen auf die verwaltete Ansicht der Schnittstelle. Weitere Informationen dazu, wie Schnittstellen für COM verfügbar gemacht werden, finden Sie unter "Exportierte Typkonvertierung").
Das Tlbimp.exe (Type Library Importer) wendet dieses Attribut auch auf importierte, nichtduale Schnittstellen an. es wendet das entsprechende Enumerationselement an, um anzugeben, dass die Schnittstelle nur "dispatch-only" oder IUnknown "-only" ist.
Konstruktoren
| Name | Beschreibung |
|---|---|
| InterfaceTypeAttribute(ComInterfaceType) |
Initialisiert eine neue Instanz der InterfaceTypeAttribute Klasse mit dem angegebenen ComInterfaceType Enumerationsmememm. |
| InterfaceTypeAttribute(Int16) |
Initialisiert eine neue Instanz der InterfaceTypeAttribute Klasse mit dem angegebenen ComInterfaceType Enumerationsmememm. |
Eigenschaften
| Name | Beschreibung |
|---|---|
| TypeId |
Wenn sie in einer abgeleiteten Klasse implementiert wird, wird ein eindeutiger Bezeichner für diese Attribute. (Geerbt von Attribute) |
| Value |
Ruft den ComInterfaceType Wert ab, der beschreibt, wie die Schnittstelle für COM verfügbar gemacht werden soll. |
Methoden
| Name | Beschreibung |
|---|---|
| Equals(Object) |
Gibt einen Wert zurück, der angibt, ob diese Instanz einem angegebenen Objekt entspricht. (Geerbt von Attribute) |
| GetHashCode() |
Gibt den Hashcode für diese Instanz zurück. (Geerbt von Attribute) |
| GetType() |
Ruft die Type der aktuellen Instanz ab. (Geerbt von Object) |
| IsDefaultAttribute() |
Wenn sie in einer abgeleiteten Klasse überschrieben wird, gibt an, ob der Wert dieser Instanz der Standardwert für die abgeleitete Klasse ist. (Geerbt von Attribute) |
| Match(Object) |
Wenn sie in einer abgeleiteten Klasse überschrieben wird, wird ein Wert zurückgegeben, der angibt, ob diese Instanz einem angegebenen Objekt entspricht. (Geerbt von Attribute) |
| MemberwiseClone() |
Erstellt eine flache Kopie der aktuellen Object. (Geerbt von Object) |
| ToString() |
Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt. (Geerbt von Object) |
Explizite Schnittstellenimplementierungen
| Name | Beschreibung |
|---|---|
| _Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) |
Ordnet eine Reihe von Namen einer entsprechenden Reihe von Dispatchbezeichnern zu. (Geerbt von Attribute) |
| _Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) |
Ruft die Typinformationen für ein Objekt ab, mit denen die Typinformationen für eine Schnittstelle abgerufen werden können. (Geerbt von Attribute) |
| _Attribute.GetTypeInfoCount(UInt32) |
Ruft die Anzahl der Schnittstellen mit Typinformationen ab, die von einem Objekt bereitgestellt werden (0 oder 1). (Geerbt von Attribute) |
| _Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) |
Bietet Zugriff auf Eigenschaften und Methoden, die von einem Objekt verfügbar gemacht werden. (Geerbt von Attribute) |