InterfaceTypeAttribute 클래스

정의

관리되는 인터페이스를 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
상속
InterfaceTypeAttribute
특성

예제

다음 예제에서는 어떻게 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 (형식 라이브러리 가져오기) 도이 특성을 적용 됩니다 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 클래스의 새 인스턴스를 초기화합니다.Initializes a new instance of the InterfaceTypeAttribute class with the specified ComInterfaceType enumeration member.

InterfaceTypeAttribute(Int16)

지정된 InterfaceTypeAttribute 열거형 멤버를 사용하여 ComInterfaceType 클래스의 새 인스턴스를 초기화합니다.Initializes a new instance of the InterfaceTypeAttribute class with the specified ComInterfaceType enumeration member.

속성

TypeId

파생 클래스에서 구현된 경우 이 Attribute에 대한 고유 식별자를 가져옵니다.When implemented in a derived class, gets a unique identifier for this Attribute.

(다음에서 상속됨 Attribute)
Value

인터페이스를 COM에 노출하는 방법을 설명하는 ComInterfaceType 값을 가져옵니다.Gets the ComInterfaceType value that describes how the interface should be exposed to COM.

메서드

Equals(Object)

이 인스턴스가 지정한 개체와 같은지를 나타내는 값을 반환합니다.Returns a value that indicates whether this instance is equal to a specified object.

(다음에서 상속됨 Attribute)
GetHashCode()

이 인스턴스의 해시 코드를 반환합니다.Returns the hash code for this instance.

(다음에서 상속됨 Attribute)
GetType()

현재 인스턴스의 Type을 가져옵니다.Gets the Type of the current instance.

(다음에서 상속됨 Object)
IsDefaultAttribute()

파생 클래스에서 재정의된 경우 이 인스턴스 값이 파생 클래스에 대한 기본값인지 여부를 표시합니다.When overridden in a derived class, indicates whether the value of this instance is the default value for the derived class.

(다음에서 상속됨 Attribute)
Match(Object)

파생 클래스에서 재정의된 경우 이 인스턴스가 지정된 개체와 같은지 여부를 나타내는 값을 반환합니다.When overridden in a derived class, returns a value that indicates whether this instance equals a specified object.

(다음에서 상속됨 Attribute)
MemberwiseClone()

현재 Object의 단순 복사본을 만듭니다.Creates a shallow copy of the current Object.

(다음에서 상속됨 Object)
ToString()

현재 개체를 나타내는 문자열을 반환합니다.Returns a string that represents the current object.

(다음에서 상속됨 Object)

명시적 인터페이스 구현

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

이름 집합을 해당하는 디스패치 식별자 집합에 매핑합니다.Maps a set of names to a corresponding set of dispatch identifiers.

(다음에서 상속됨 Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

인터페이스의 형식 정보를 가져오는 데 사용할 수 있는 개체의 형식 정보를 검색합니다.Retrieves the type information for an object, which can be used to get the type information for an interface.

(다음에서 상속됨 Attribute)
_Attribute.GetTypeInfoCount(UInt32)

개체에서 제공하는 형식 정보 인터페이스의 수를 검색합니다(0 또는 1).Retrieves the number of type information interfaces that an object provides (either 0 or 1).

(다음에서 상속됨 Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

개체에서 노출하는 메서드와 속성에 대한 액세스를 제공합니다.Provides access to properties and methods exposed by an object.

(다음에서 상속됨 Attribute)

적용 대상

추가 정보