다음을 통해 공유


TypeDescriptor 클래스

특성, 속성 및 이벤트와 같은 구성 요소의 특징에 대한 정보를 제공합니다. 이 클래스는 상속될 수 없습니다.

네임스페이스: System.ComponentModel
어셈블리: System(system.dll)

구문

‘선언
Public NotInheritable Class TypeDescriptor
‘사용 방법
Dim instance As TypeDescriptor
public sealed class TypeDescriptor
public ref class TypeDescriptor sealed
public final class TypeDescriptor
public final class TypeDescriptor

설명

.NET Framework에서는 두 가지 방법으로 형식에 대한 메타데이터에 액세스할 수 있습니다. 그 중 하나는 System.Reflection 네임스페이스에서 제공되는 리플렉션 API이고 다른 하나는 TypeDescriptor 클래스입니다. 리플렉션은 루트 Object 클래스의 GetType 메서드를 기초로 하기 때문에 모든 형식에서 사용할 수 있는 일반적인 메커니즘입니다. 리플렉션에서 형식에 대해 반환하는 정보는 대상 형식의 컴파일 후 수정할 수 없으므로 확장할 수 없습니다. 자세한 내용은 리플렉션의 항목을 참조하십시오.

이와 반대로 TypeDescriptorIComponent 인터페이스를 구현하는 클래스에 대한 확장 가능한 검사 메커니즘입니다. 리플렉션과 달리 TypeDescriptor는 메서드를 검사하지 않으며, 대상 구성 요소의 Site를 통해 사용할 수 있는 몇 가지 서비스에서 동적으로 확장할 수 있습니다. 다음 표에는 이러한 서비스가 나와 있습니다.

서비스 이름

설명

IExtenderProvider

ToolTip과 같은 다른 클래스가 구성 요소에 추가 속성을 제공할 수 있도록 합니다.

ITypeDescriptorFilterService

다른 개체가 구성 요소에서 노출하는 표준 메타데이터를 수정할 수 있도록 합니다.

ICustomTypeDescriptor

클래스가 자체 메타데이터를 완전하게 동적으로 지정하고 TypeDescriptor의 표준 검사 메커니즘을 대체할 수 있도록 합니다.

TypeDescriptor에서 제공하는 확장성을 통해 구성 요소의 디자인 타임 표현이 실제 런타임 표현과 달라질 수 있으므로 TypeDescriptor는 디자인 타임 인프라를 빌드하는 데 유용합니다.

TypeDescriptor의 모든 메서드는 static입니다. 이 클래스의 인스턴스를 만들 수 없으며, 이 클래스는 상속될 수 없습니다.

속성 및 이벤트 값은 구성 요소 클래스에 지정하거나 디자인 타임에 변경하는 방법 중 하나를 사용하여 설정할 수 있습니다. 이러한 값은 두 가지 방법으로 설정할 수 있기 때문에 TypeDescriptor의 오버로드된 메서드도 두 가지 형식의 매개 변수인 클래스 형식이나 개체 인스턴스를 사용합니다.

TypeDescriptor 정보에 액세스하려고 하며 개체의 인스턴스가 있는 경우에는 구성 요소에 대해 호출하는 메서드를 사용합니다. 클래스 형식에 대해 호출하는 메서드는 개체의 인스턴스가 없는 경우에만 사용합니다.

속성 및 이벤트는 속도를 빠르게 하기 위해 TypeDescriptor에 의해 캐시됩니다. 일반적으로 속성 및 이벤트는 개체를 사용하는 동안 유지됩니다. 그러나 Extender 공급자 및 디자이너에서는 개체에 대한 속성 집합을 변경할 수 있습니다. 이 경우 Refresh 메서드를 호출하여 캐시를 업데이트해야 합니다.

참고

이 클래스에 적용되는 HostProtectionAttribute 특성의 Resources 속성 값은 SharedState입니다. HostProtectionAttribute는 대개 아이콘을 두 번 클릭하거나, 명령을 입력하거나, 브라우저에서 URL을 입력하여 시작되는 데스크톱 응용 프로그램에 영향을 미치지 않습니다. 자세한 내용은 HostProtectionAttribute 클래스나 SQL Server 프로그래밍 및 호스트 보호 특성을 참조하십시오.

상속 계층 구조

System.Object
  System.ComponentModel.TypeDescriptor

스레드로부터의 안전성

이 형식의 모든 public static(Visual Basic의 경우 Shared) 멤버는 스레드로부터 안전합니다. 인터페이스 멤버는 스레드로부터 안전하지 않습니다.

플랫폼

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

.NET Framework에서 모든 플래폼의 모든 버전을 지원하지는 않습니다. 지원되는 버전의 목록은 시스템 요구 사항을 참조하십시오.

버전 정보

.NET Framework

2.0, 1.1, 1.0에서 지원

.NET Compact Framework

2.0, 1.0에서 지원

참고 항목

참조

TypeDescriptor 멤버
System.ComponentModel 네임스페이스
EventDescriptor 클래스
PropertyDescriptor 클래스
System.Reflection
IComponent 인터페이스
ISite 인터페이스

기타 리소스

형식 설명자 개요
리플렉션