InterfaceTypeAttribute InterfaceTypeAttribute InterfaceTypeAttribute InterfaceTypeAttribute Class

定義

指示 Managed 介面公開給 COM 時是否為雙重、僅分派或 IUnknownIndicates 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)]
[System.Runtime.InteropServices.ComVisible(true)]
public sealed class InterfaceTypeAttribute : Attribute
type InterfaceTypeAttribute = class
    inherit Attribute
Public NotInheritable Class InterfaceTypeAttribute
Inherits Attribute
繼承
InterfaceTypeAttributeInterfaceTypeAttributeInterfaceTypeAttributeInterfaceTypeAttribute
屬性

範例

下列範例示範如何InterfaceTypeAttribute控制如何將介面公開至 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

備註

您可以將此屬性套用至介面。You can apply this attribute to interfaces.

根據預設, tlbexp.exe (類型程式庫匯出工具)會以雙重介面的形式, 將 managed 介面公開給 COM, 讓您可以彈性地進行晚期繫結或早期繫結的效能。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. ComInterfaceType列舉型別可讓您覆寫預設行為, 並僅指定晚期繫結或僅限早期系結。The ComInterfaceType enumeration enables you to override the default behavior and specify late binding only or early binding only. 例如, 您可以將InterfaceType (ComInterfaceType.InterfaceIsIDispatch)套用至介面, 以產生中繼資料, 將呼叫端限制為僅限晚期繫結。For example, you can apply InterfaceType (ComInterfaceType.InterfaceIsIDispatch) to an interface to produce metadata to restrict callers to late binding only. 雖然衍生自IDispatch介面的介面通常是雙重的InterfaceIsIDispatch , 但列舉成員只允許對介面方法進行晚期繫結的呼叫。Although interfaces that derive from the IDispatch interface are often dual, the InterfaceIsIDispatch enumeration member allows only late-bound calls to the interface methods. 這個屬性不會影響介面的 managed 視圖。This attribute has no effect on the managed view of the interface. 如需如何將介面公開至 COM 的詳細資訊, 請參閱匯出的類型轉換For additional information on how interfaces are exposed to COM, see Exported Type Conversion.

Tlbimp.exe (類型程式庫匯入工具)也會將此屬性套用至匯入的 nondual 介面;它會套用適當的列舉成員, 以指出介面僅限分派或IUnknown僅限分派。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.

建構函式

InterfaceTypeAttribute(ComInterfaceType) InterfaceTypeAttribute(ComInterfaceType) InterfaceTypeAttribute(ComInterfaceType) InterfaceTypeAttribute(ComInterfaceType)

使用指定的 InterfaceTypeAttribute 列舉型別 (Enumeration) 成員,初始化 ComInterfaceType 類別的新執行個體。Initializes a new instance of the InterfaceTypeAttribute class with the specified ComInterfaceType enumeration member.

InterfaceTypeAttribute(Int16) InterfaceTypeAttribute(Int16) InterfaceTypeAttribute(Int16) InterfaceTypeAttribute(Int16)

使用指定的 InterfaceTypeAttribute 列舉型別 (Enumeration) 成員,初始化 ComInterfaceType 類別的新執行個體。Initializes a new instance of the InterfaceTypeAttribute class with the specified ComInterfaceType enumeration member.

屬性

TypeId TypeId TypeId TypeId

在衍生類別中實作時,取得這個 Attribute 的唯一識別碼。When implemented in a derived class, gets a unique identifier for this Attribute.

(Inherited from Attribute)
Value Value Value Value

取得描述介面應如何公開給 COM 的 ComInterfaceType 值。Gets the ComInterfaceType value that describes how the interface should be exposed to COM.

方法

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

傳回值,這個值指出此執行個體是否與指定的物件相等。Returns a value that indicates whether this instance is equal to a specified object.

(Inherited from Attribute)
GetHashCode() GetHashCode() GetHashCode() GetHashCode()

傳回這個執行個體的雜湊碼。Returns the hash code for this instance.

(Inherited from Attribute)
GetType() GetType() GetType() GetType()

取得目前執行個體的 TypeGets the Type of the current instance.

(Inherited from Object)
IsDefaultAttribute() IsDefaultAttribute() IsDefaultAttribute() IsDefaultAttribute()

在衍生類別中覆寫時,表示這個執行個體的值是衍生類別的預設值。When overridden in a derived class, indicates whether the value of this instance is the default value for the derived class.

(Inherited from Attribute)
Match(Object) Match(Object) Match(Object) Match(Object)

在衍生類別中覆寫時,會傳回值,表示這個執行個體是否等於指定物件。When overridden in a derived class, returns a value that indicates whether this instance equals a specified object.

(Inherited from Attribute)
MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

建立目前 Object 的淺層複本 (Shallow Copy)。Creates a shallow copy of the current Object.

(Inherited from Object)
ToString() ToString() ToString() ToString()

傳回代表目前物件的字串。Returns a string that represents the current object.

(Inherited from Object)

明確介面實作

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

將一組名稱對應至一組對應的分派識別項 (Dispatch Identifier)。Maps a set of names to a corresponding set of dispatch identifiers.

(Inherited from Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) _Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) _Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) _Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

擷取物件的類型資訊,可以用來取得介面的類型資訊。Retrieves the type information for an object, which can be used to get the type information for an interface.

(Inherited from Attribute)
_Attribute.GetTypeInfoCount(UInt32) _Attribute.GetTypeInfoCount(UInt32) _Attribute.GetTypeInfoCount(UInt32) _Attribute.GetTypeInfoCount(UInt32)

擷取物件提供的類型資訊介面數目 (0 或 1)。Retrieves the number of type information interfaces that an object provides (either 0 or 1).

(Inherited from Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) _Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) _Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) _Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

提供物件所公開的屬性和方法的存取權。Provides access to properties and methods exposed by an object.

(Inherited from Attribute)

適用於

另請參閱