IDispatchImplAttribute 클래스
참고: 이 클래스는 이제 사용되지 않습니다.
이중 인터페이스 및 dispinterface를 COM에 노출 시킬 때 공용 언어 런타임에서 사용할 IDispatch 구현을 나타냅니다.
네임스페이스: System.Runtime.InteropServices
어셈블리: mscorlib(mscorlib.dll)
구문
‘선언
<ComVisibleAttribute(True)> _
<AttributeUsageAttribute(AttributeTargets.Assembly Or AttributeTargets.Class, Inherited:=False)> _
<ObsoleteAttribute("This attribute is deprecated and will be removed in a future version.", False)> _
Public NotInheritable Class IDispatchImplAttribute
Inherits Attribute
‘사용 방법
Dim instance As IDispatchImplAttribute
[ComVisibleAttribute(true)]
[AttributeUsageAttribute(AttributeTargets.Assembly|AttributeTargets.Class, Inherited=false)]
[ObsoleteAttribute("This attribute is deprecated and will be removed in a future version.", false)]
public sealed class IDispatchImplAttribute : Attribute
[ComVisibleAttribute(true)]
[AttributeUsageAttribute(AttributeTargets::Assembly|AttributeTargets::Class, Inherited=false)]
[ObsoleteAttribute(L"This attribute is deprecated and will be removed in a future version.", false)]
public ref class IDispatchImplAttribute sealed : public Attribute
/** @attribute ComVisibleAttribute(true) */
/** @attribute AttributeUsageAttribute(AttributeTargets.Assembly|AttributeTargets.Class, Inherited=false) */
/** @attribute ObsoleteAttribute("This attribute is deprecated and will be removed in a future version.", false) */
public final class IDispatchImplAttribute extends Attribute
ComVisibleAttribute(true)
AttributeUsageAttribute(AttributeTargets.Assembly|AttributeTargets.Class, Inherited=false)
ObsoleteAttribute("This attribute is deprecated and will be removed in a future version.", false)
public final class IDispatchImplAttribute extends Attribute
설명
이 특성은 클래스 또는 어셈블리에 적용될 수 있습니다.
명시적으로 구현해야 하는 경우에만 이 특성을 설정해야 합니다. 특성을 CompatibleImpl로 설정하면 개체에 대한 형식 정보를 COM의 CreateStdDispatch API로 전달하여 IDispatch 구현이 제공됩니다. 특성을 InternalImpl로 설정하면 공용 언어 런타임에서 IDispatch 구현이 제공됩니다. 특성을 SystemDefinedImpl로 설정하면 런타임에서 적절한 구현을 선택할 수 있습니다. 어셈블리에 특성을 사용하면 어셈블리 안에 정의된 모든 클래스에 특성이 적용됩니다. 개별 클래스에 특성을 사용하면 특성은 해당 클래스에서 노출시킨 인터페이스에만 적용되며 모든 어셈블리 수준의 설정을 재정의합니다.
예제
다음 예제에서는 IDispatchImplAttribute를 적용하여 공용 언어 런타임에서 제공하는 IDispatch 구현을 선택하는 방법을 보여 줍니다.
Imports System
Imports System.Runtime.InteropServices
' by default all classes in this assembly will use COM implementaion
<Assembly: IDispatchImpl(IDispatchImplType.CompatibleImpl)>
Module MyNamespace
' But this class will use runtime implementaion
<IDispatchImpl(IDispatchImplType.InternalImpl)> _
Public Class c
'
End Class
End Module
using System;
using System.Runtime.InteropServices;
// by default all classes in this assembly will use COM implementaion
[assembly:IDispatchImpl(IDispatchImplType.CompatibleImpl)]
namespace MyNamespace
{
// But this class will use runtime implementaion
[IDispatchImpl(IDispatchImplType.InternalImpl)]
class MyClass
{
//
}
}
using namespace System;
using namespace System::Runtime::InteropServices;
// by default all classes in this assembly will use COM implementaion
// // But this class will use runtime implementaion
[assembly:IDispatchImpl(IDispatchImplType::CompatibleImpl)];
[IDispatchImpl(IDispatchImplType::InternalImpl)]
ref class MyClass{};
import System.*;
import System.Runtime.InteropServices.*;
// by default all classes in this assembly will use COM implementaion
/** @assembly IDispatchImpl(IDispatchImplType.CompatibleImpl)
*/
// But this class will use runtime implementaion
/** @attribute IDispatchImpl(IDispatchImplType.InternalImpl)
*/
class MyClass
{
//
} //MyClass
상속 계층 구조
System.Object
System.Attribute
System.Runtime.InteropServices.IDispatchImplAttribute
스레드로부터의 안전성
이 형식의 모든 public static(Visual Basic의 경우 Shared) 멤버는 스레드로부터 안전합니다. 인터페이스 멤버는 스레드로부터 안전하지 않습니다.
플랫폼
Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
.NET Framework에서 모든 플래폼의 모든 버전을 지원하지는 않습니다. 지원되는 버전의 목록은 시스템 요구 사항을 참조하십시오.
버전 정보
.NET Framework
1.0, 1.1에서 지원
2.0에서 사용되지 않음(컴파일러 경고)
참고 항목
참조
IDispatchImplAttribute 멤버
System.Runtime.InteropServices 네임스페이스
IDispatchImplType