Udostępnij za pośrednictwem


InterfaceTypeAttribute Klasa

Definicja

Wskazuje, czy interfejs zarządzany jest podwójny, tylko do wysyłania, czy IUnknown -only, gdy jest uwidoczniony w modelu 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
Dziedziczenie
InterfaceTypeAttribute
Atrybuty

Przykłady

W poniższym przykładzie pokazano, jak InterfaceTypeAttribute steruje sposobem uwidaczniania interfejsu 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

Uwagi

Ten atrybut można zastosować do interfejsów.

Domyślnie Tlbexp.exe (eksporter biblioteki typów) uwidacznia zarządzany interfejs COM jako podwójny interfejs, zapewniając elastyczność późnego powiązania lub wydajność wczesnego powiązania. Wyliczenie ComInterfaceType umożliwia zastąpienie domyślnego zachowania i określenie tylko późnego powiązania lub wcześniejszego powiązania. Na przykład można zastosować InterfaceType (ComInterfaceType.InterfaceIsIDispatch) do interfejsu w celu utworzenia metadanych w celu ograniczenia elementów wywołujących tylko do późnego powiązania. Mimo że interfejsy pochodzące z interfejsu IDispatch są często podwójne, InterfaceIsIDispatch element członkowski wyliczania umożliwia tylko późne wywołania do metod interfejsu. Ten atrybut nie ma wpływu na zarządzany widok interfejsu. Aby uzyskać dodatkowe informacje na temat sposobu uwidaczniania interfejsów w modelu COM, zobacz Eksportowanie konwersji typów).

Tlbimp.exe (importer biblioteki typów) stosuje również ten atrybut do importowanych, nieumyślnie określonych interfejsów; Stosuje on odpowiedni element członkowski wyliczenia, aby wskazać, że interfejs jest tylko do wysyłania lub IUnknown -only.

Konstruktory

Nazwa Opis
InterfaceTypeAttribute(ComInterfaceType)

Inicjuje InterfaceTypeAttribute nowe wystąpienie klasy przy użyciu określonego ComInterfaceType elementu członkowskiego wyliczenia.

InterfaceTypeAttribute(Int16)

Inicjuje InterfaceTypeAttribute nowe wystąpienie klasy przy użyciu określonego ComInterfaceType elementu członkowskiego wyliczenia.

Właściwości

Nazwa Opis
TypeId

Po zaimplementowaniu w klasie pochodnej pobiera unikatowy identyfikator dla tego Attribute.

(Odziedziczone po Attribute)
Value

ComInterfaceType Pobiera wartość opisjącą sposób uwidaczniania interfejsu com.

Metody

Nazwa Opis
Equals(Object)

Zwraca wartość wskazującą, czy to wystąpienie jest równe określonemu obiektowi.

(Odziedziczone po Attribute)
GetHashCode()

Zwraca kod skrótu dla tego wystąpienia.

(Odziedziczone po Attribute)
GetType()

Pobiera Type bieżącego wystąpienia.

(Odziedziczone po Object)
IsDefaultAttribute()

Po zastąpieniu w klasie pochodnej wskazuje, czy wartość tego wystąpienia jest wartością domyślną dla klasy pochodnej.

(Odziedziczone po Attribute)
Match(Object)

Po zastąpieniu w klasie pochodnej zwraca wartość wskazującą, czy to wystąpienie jest równe określonemu obiektowi.

(Odziedziczone po Attribute)
MemberwiseClone()

Tworzy płytkią kopię bieżącego Object.

(Odziedziczone po Object)
ToString()

Zwraca ciąg reprezentujący bieżący obiekt.

(Odziedziczone po Object)

Jawne implementacje interfejsu

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

Zestaw nazw jest mapowany na odpowiedni zestaw identyfikatorów wysyłania.

(Odziedziczone po Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Pobiera informacje o typie obiektu, którego można użyć do uzyskania informacji o typie dla interfejsu.

(Odziedziczone po Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Pobiera informację o liczbie typów interfejsów, jakie zawiera obiekt (0 lub 1).

(Odziedziczone po Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Zapewnia dostęp do właściwości i metod uwidocznionych przez obiekt.

(Odziedziczone po Attribute)

Dotyczy

Zobacz też