InterfaceTypeAttribute InterfaceTypeAttribute InterfaceTypeAttribute InterfaceTypeAttribute Class

Определение

Указывает, является ли интерфейс при предоставлении COM сдвоенным, диспетчерским или только IUnknown.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)]
[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 (средство экспорта библиотек типов) предоставляет управляемый интерфейс 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. Этот атрибут не влияет на управляемое представление интерфейса.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 (программа импорта библиотек типов) также применяет этот атрибут к импортированным, несдвоенным интерфейсам. Он применяет соответствующий член перечисления, чтобы указать, что интерфейс является только диспетчеризации 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 с указанным членом перечисления ComInterfaceType.Initializes a new instance of the InterfaceTypeAttribute class with the specified ComInterfaceType enumeration member.

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

Инициализирует новый экземпляр класса InterfaceTypeAttribute с указанным членом перечисления 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

Возвращает значение ComInterfaceType, описывающее способ предоставления интерфейса COM.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()

Возвращает объект Type для текущего экземпляра.Gets 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.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)

Сопоставляет набор имен соответствующему набору идентификаторов диспетчеризации.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)

Применяется к

Дополнительно