InterfaceTypeAttribute Klasse

Definition

Gibt an, ob es sich bei einer verwalteten Schnittstelle um eine duale, auf Dispatch beschränkte oder auf IUnknown beschränkte Schnittstelle handelt, wenn diese für COM verfügbar gemacht wird.

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
InterfaceTypeAttribute
Attribute

Beispiele

Das folgende Beispiel zeigt, wie InterfaceTypeAttribute gesteuert wird, wie die Schnittstelle für 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 macht der Tlbexp.exe (Type Library Exporter) eine verwaltete Schnittstelle für COM als duale Schnittstelle verfügbar, sodass Sie die Flexibilität der späten Bindung oder der Leistung der frühen Bindung erhalten. Mit ComInterfaceType der -Enumeration können Sie das Standardverhalten außer Kraft setzen und nur späte oder frühe Bindung angeben. Sie können z. B. auf eine Schnittstelle anwenden InterfaceType (ComInterfaceType.InterfaceIsIDispatch) , um Metadaten zu erstellen, um Aufrufer nur auf verspätete Bindung zu beschränken. Schnittstellen, die von der IDispatch Schnittstelle abgeleitet werden, sind häufig dual, aber der InterfaceIsIDispatch Enumerationsmember lässt nur spät gebundene Aufrufe der 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 Exporttypkonvertierung.

Der Tlbimp.exe (Type Library Importer) wendet dieses Attribut auch auf importierte, nicht-virtuelle Schnittstellen an. Es wendet den entsprechenden Enumerationsmember an, um anzugeben, dass die Schnittstelle nur dispatch-only oder IUnknown -only ist.

Konstruktoren

InterfaceTypeAttribute(ComInterfaceType)

Initialisiert eine neue Instanz der InterfaceTypeAttribute-Klasse mit dem angegebenen ComInterfaceType-Enumerationsmember.

InterfaceTypeAttribute(Int16)

Initialisiert eine neue Instanz der InterfaceTypeAttribute-Klasse mit dem angegebenen ComInterfaceType-Enumerationsmember.

Eigenschaften

TypeId

Ruft bei Implementierung in einer abgeleiteten Klasse einen eindeutigen Bezeichner für dieses Attribute ab.

(Geerbt von Attribute)
Value

Ruft den ComInterfaceType-Wert ab, der beschreibt, wie die Schnittstelle für COM verfügbar gemacht werden soll.

Methoden

Equals(Object)

Gibt einen Wert zurück, der angibt, ob diese Instanz gleich einem angegebenen Objekt ist.

(Geerbt von Attribute)
GetHashCode()

Gibt den Hashcode für diese Instanz zurück.

(Geerbt von Attribute)
GetType()

Ruft den Type der aktuellen Instanz ab.

(Geerbt von Object)
IsDefaultAttribute()

Gibt beim Überschreiben in einer abgeleiteten Klasse an, ob der Wert der Instanz der Standardwert für die abgeleitete Klasse ist.

(Geerbt von Attribute)
Match(Object)

Beim Überschreiben in einer abgeleiteten Klasse wird ein Wert zurückgegeben, der angibt, ob diese Instanz einem bestimmten Objekt entspricht.

(Geerbt von Attribute)
MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.

(Geerbt von Object)
ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.

(Geerbt von Object)

Explizite Schnittstellenimplementierungen

_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 deren Hilfe 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)

Stellt den Zugriff auf von einem Objekt verfügbar gemachte Eigenschaften und Methoden bereit.

(Geerbt von Attribute)

Gilt für:

Weitere Informationen