InterfaceTypeAttribute Klasa

Definicja

Wskazuje, czy zarządzany interfejs jest podwójny, tylko do wysyłania, czy IUnknown tylko wtedy, gdy jest uwidoczniony w modelu com.Indicates whether a managed interface is dual, dispatch-only, or IUnknown -only when exposed to 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

Poniższy przykład pokazuje, jak InterfaceTypeAttribute steruje sposobem uwidocznienia interfejsu w modelu com.The following example shows how InterfaceTypeAttribute controls how the interface is exposed to 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.You can apply this attribute to interfaces.

Domyślnie Tlbexp.exe (Eksporter biblioteki typów) ujawnia interfejs zarządzany do modelu COM jako podwójny interfejs, zapewniając elastyczność późnego wiązania lub wydajność wczesnego powiązania.By default, the Tlbexp.exe (Type Library Exporter) exposes a managed interface to COM as a dual interface, giving you the flexibility of late binding or the performance of early binding. ComInterfaceTypeWyliczenie pozwala przesłonić zachowanie domyślne i określić tylko późne wiązanie lub tylko wczesne powiązanie.The ComInterfaceType enumeration enables you to override the default behavior and specify late binding only or early binding only. Na przykład można zastosować InterfaceType (ComInterfaceType.InterfaceIsIDispatch) do interfejsu w celu utworzenia metadanych w celu ograniczenia wywoływania tylko do późnego wiązania.For example, you can apply InterfaceType (ComInterfaceType.InterfaceIsIDispatch) to an interface to produce metadata to restrict callers to late binding only. Chociaż interfejsy, które pochodzą z IDispatch interfejsu są często podwójnie, InterfaceIsIDispatch element członkowski wyliczenia zezwala tylko na wywołania z późnym wiązaniem do metod interfejsu.Although interfaces that derive from the IDispatch interface are often dual, the InterfaceIsIDispatch enumeration member allows only late-bound calls to the interface methods. Ten atrybut nie ma wpływu na zarządzany widok interfejsu.This attribute has no effect on the managed view of the interface. Aby uzyskać dodatkowe informacje na temat sposobu ujawniania interfejsów modelu COM, zobacz Konwersja typu wyeksportowanego.For additional information on how interfaces are exposed to COM, see Exported Type Conversion.

Tlbimp.exe (Importer biblioteki typów) stosuje również ten atrybut do importowanych, niepodwójnych interfejsów; stosuje odpowiedni element członkowski wyliczenia, aby wskazać, że interfejs jest tylko do wysyłki lub IUnknown -tylko.The Tlbimp.exe (Type Library Importer) also applies this attribute to imported, nondual interfaces; it applies the appropriate enumeration member to indicate that the interface is dispatch-only or IUnknown -only.

Konstruktory

InterfaceTypeAttribute(ComInterfaceType)

Inicjuje nowe wystąpienie InterfaceTypeAttribute klasy z określonym ComInterfaceType składowaną wyliczeniem.Initializes a new instance of the InterfaceTypeAttribute class with the specified ComInterfaceType enumeration member.

InterfaceTypeAttribute(Int16)

Inicjuje nowe wystąpienie InterfaceTypeAttribute klasy z określonym ComInterfaceType składowaną wyliczeniem.Initializes a new instance of the InterfaceTypeAttribute class with the specified ComInterfaceType enumeration member.

Właściwości

TypeId

Po zaimplementowaniu w klasie pochodnej pobiera unikatowy identyfikator dla tego elementu Attribute .When implemented in a derived class, gets a unique identifier for this Attribute.

(Odziedziczone po Attribute)
Value

Pobiera ComInterfaceType wartość opisującą sposób, w jaki interfejs powinien być narażony na model com.Gets the ComInterfaceType value that describes how the interface should be exposed to COM.

Metody

Equals(Object)

Zwraca wartość wskazującą, czy to wystąpienie jest równe podanemu obiektowi.Returns a value that indicates whether this instance is equal to a specified object.

(Odziedziczone po Attribute)
GetHashCode()

Zwraca wartość skrótu dla tego wystąpienia.Returns the hash code for this instance.

(Odziedziczone po Attribute)
GetType()

Pobiera Type bieżące wystąpienie.Gets the Type of the current instance.

(Odziedziczone po Object)
IsDefaultAttribute()

Gdy jest zastępowany w klasie pochodnej, wskazuje, czy wartość tego wystąpienia jest wartością domyślną klasy pochodnej.When overridden in a derived class, indicates whether the value of this instance is the default value for the derived class.

(Odziedziczone po Attribute)
Match(Object)

Gdy jest zastępowany w klasie pochodnej, zwraca wartość wskazującą, czy to wystąpienie jest zgodne z określonym obiektem.When overridden in a derived class, returns a value that indicates whether this instance equals a specified object.

(Odziedziczone po Attribute)
MemberwiseClone()

Tworzy skróconą kopię bieżącego elementu Object .Creates a shallow copy of the current Object.

(Odziedziczone po Object)
ToString()

Zwraca ciąg reprezentujący bieżący obiekt.Returns a string that represents the current object.

(Odziedziczone po Object)

Jawne implementacje interfejsu

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

Zestaw nazw jest mapowany na odpowiedni zestaw identyfikatorów wysyłania.Maps a set of names to a corresponding set of dispatch identifiers.

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

Pobiera informacje o typie dla obiektu, którego można użyć do uzyskania informacji o typie dla interfejsu.Retrieves the type information for an object, which can be used to get the type information for an interface.

(Odziedziczone po Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Pobiera informację o liczbie typów interfejsów, jakie zawiera obiekt (0 lub 1).Retrieves the number of type information interfaces that an object provides (either 0 or 1).

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

Umożliwia dostęp do właściwości i metod udostępnianych przez obiekt.Provides access to properties and methods exposed by an object.

(Odziedziczone po Attribute)

Dotyczy

Zobacz też