Sdílet prostřednictvím


InterfaceTypeAttribute Třída

Definice

Označuje, zda je spravované rozhraní duální, pouze pro odesílání nebo IUnknown -only, pokud je vystaveno 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
Dědičnost
InterfaceTypeAttribute
Atributy

Příklady

Následující příklad ukazuje, jak InterfaceTypeAttribute řídí, jak je rozhraní vystaveno modelu 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

Poznámky

Tento atribut můžete použít pro rozhraní.

Ve výchozím nastavení Tlbexp.exe (exportér knihovny typů) zveřejňuje spravované rozhraní modelu COM jako duální rozhraní, což vám dává flexibilitu pozdní vazby nebo výkon rané vazby. Výčet ComInterfaceType umožňuje přepsat výchozí chování a určit pouze pozdní vazbu nebo pouze počáteční vazbu. Můžete například použít InterfaceType (ComInterfaceType.InterfaceIsIDispatch) rozhraní k vytvoření metadat a omezit volající pouze na pozdní vazbu. I když rozhraní, které jsou odvozeny z IDispatch rozhraní jsou často duální, člen výčtu InterfaceIsIDispatch umožňuje pouze pozdně vázané volání metod rozhraní. Tento atribut nemá žádný vliv na spravované zobrazení rozhraní. Další informace o tom, jak jsou rozhraní vystavena modelu COM, najdete v tématu Exportovaný převod typů.

Tlbimp.exe (Type Library Importer) také použije tento atribut pro importovaná, neduální rozhraní; použije příslušný člen výčtu k označení, že rozhraní je pouze dispatch nebo IUnknown -only.

Konstruktory

InterfaceTypeAttribute(ComInterfaceType)

Inicializuje novou instanci InterfaceTypeAttribute třídy se zadaným ComInterfaceType členem výčtu.

InterfaceTypeAttribute(Int16)

Inicializuje novou instanci InterfaceTypeAttribute třídy se zadaným ComInterfaceType členem výčtu.

Vlastnosti

TypeId

Při implementaci v odvozené třídě získá jedinečný identifikátor pro tuto Attributetřídu .

(Zděděno od Attribute)
Value

ComInterfaceType Získá hodnotu, která popisuje, jak má být rozhraní vystaveno com.

Metody

Equals(Object)

Vrací hodnotu, která určuje, zda je tato instance rovna zadanému objektu.

(Zděděno od Attribute)
GetHashCode()

Vrátí hodnotu hash pro tuto instanci.

(Zděděno od Attribute)
GetType()

Získá aktuální Type instanci.

(Zděděno od Object)
IsDefaultAttribute()

Při přepsání v odvozené třídě označuje, zda je hodnota této instance výchozí hodnotou pro odvozenou třídu.

(Zděděno od Attribute)
Match(Object)

Při přepsání v odvozené třídě vrátí hodnotu, která označuje, zda se tato instance rovná zadanému objektu.

(Zděděno od Attribute)
MemberwiseClone()

Vytvoří mělkou kopii aktuálního Objectsouboru .

(Zděděno od Object)
ToString()

Vrátí řetězec, který představuje aktuální objekt.

(Zděděno od Object)

Explicitní implementace rozhraní

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

Mapuje sadu názvů na odpovídající sadu identifikátorů pro rozesílání.

(Zděděno od Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Načte informace o typu objektu, které lze použít k získání informací o typu pro rozhraní.

(Zděděno od Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Získá počet rozhraní typu informací, které objekt poskytuje (0 nebo 1).

(Zděděno od Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Poskytuje přístup k vlastnostem a metodám vystaveným objektem.

(Zděděno od Attribute)

Platí pro

Viz také