Freigeben über


InterfaceTypeAttribute Klasse

Definition

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

Gilt für:

Weitere Informationen