InterfaceTypeAttribute Třída
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Označuje, zda je spravované rozhraní duální, dispečerské 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
- Atributy
Příklady
Následující příklad ukazuje, jak řídí, jak InterfaceTypeAttribute 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 na 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 včasné vazby. Výčet ComInterfaceType umožňuje přepsat výchozí chování a zadat pouze pozdní vazbu nebo pouze časnou vazbu. Můžete například použít InterfaceType (ComInterfaceType.InterfaceIsIDispatch) rozhraní, které vytvoří metadata, aby se volajícím omezily pouze pozdní vazby. I když rozhraní odvozená z IDispatch rozhraní jsou často duální, člen výčtu InterfaceIsIDispatch umožňuje pouze pozdní volání metod rozhraní. Tento atribut nemá žádný vliv na spravované zobrazení rozhraní. Další informace o tom, jak jsou rozhraní vystavena modelu COM, naleznete v tématu Exportovaný převod typu).
Tlbimp.exe (Type Library Importer) také použije tento atribut na importovaná, neduální rozhraní; použije příslušný člen výčtu k označení, že rozhraní je pouze pro odeslání nebo IUnknown -only.
Konstruktory
| Name | Description |
|---|---|
| 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
| Name | Description |
|---|---|
| TypeId |
Při implementaci v odvozené třídě získá jedinečný identifikátor pro tento Attribute. (Zděděno od Attribute) |
| Value |
ComInterfaceType Získá hodnotu, která popisuje, jak má být rozhraní vystaveno modelu COM. |
Metody
| Name | Description |
|---|---|
| Equals(Object) |
Vrátí hodnotu, která určuje, zda je tato instance rovna zadanému objektu. (Zděděno od Attribute) |
| GetHashCode() |
Vrátí kód hash pro tuto instanci. (Zděděno od Attribute) |
| GetType() |
Získá Type aktuální instance. (Zděděno od Object) |
| IsDefaultAttribute() |
Při přepsání v odvozené třídě určuje, zda hodnota této instance je 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á určuje, zda se tato instance rovná zadanému objektu. (Zděděno od Attribute) |
| MemberwiseClone() |
Vytvoří mělkou kopii aktuálního Object. (Zděděno od Object) |
| ToString() |
Vrátí řetězec, který představuje aktuální objekt. (Zděděno od Object) |
Explicitní implementace rozhraní
| Name | Description |
|---|---|
| _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) |