다음을 통해 공유


DebuggerTypeProxy 특성 사용

업데이트: 2007년 11월

이 항목은 다음 언어에 적용됩니다.

Edition

Visual Basic

C#

C++

Web Developer

Express

항목이 적용됨 항목이 적용됨 항목이 적용됨 항목이 적용됨

Standard

항목이 적용됨

항목이 적용됨

항목이 적용됨

항목이 적용됨

Pro 및 Team

항목이 적용됨

항목이 적용됨

항목이 적용됨

항목이 적용됨

표의 범례:

항목이 적용됨

해당

항목이 적용되지 않음

해당 없음

항목이 적용되지만 명령은 기본적으로 숨겨짐

명령은 기본적으로 숨겨져 있습니다.

DebuggerTypeProxyAttribute는 형식에 대한 프록시 또는 대리를 지정하고 형식이 디버거 창에 표시되는 방식을 변경합니다. 프록시가 있는 변수를 볼 때는 원본 형식 대신 프록시가 표시에 나타납니다. 디버거 변수 창에는 프록시 형식의 공용 멤버만 표시됩니다. 전용 멤버는 표시되지 않습니다.

이 특성은 다음 항목에 적용할 수 있습니다.

  • 구조체

  • 클래스

  • 어셈블리

형식 프록시 클래스에는 해당 프록시가 대신하는 형식의 인수를 사용하는 생성자가 있어야 합니다. 디버거에서는 대상 형식의 변수를 표시해야 할 때마다 형식 프록시 클래스의 새 인스턴스를 만듭니다. 이 때문에 성능에 영향을 줄 수 있습니다. 따라서 생성자에서의 작업은 꼭 필요한 경우에만 수행하십시오.

성능 저하를 최소화하기 위해 식 계산기에서는 사용자가 디버거 창에서 + 기호를 클릭하거나 DebuggerBrowsableAttribute를 사용하여 형식을 확장한 경우가 아니면 해당 형식의 표시 프록시에 있는 특성은 검사하지 않습니다. 따라서 표시 형식 자체에 특성을 사용하면 안 됩니다. 특성은 해당 표시 형식의 본문에만 사용할 수 있습니다.

형식 프록시는 특성의 대상인 클래스 내에 중첩된 전용 클래스인 것이 좋습니다. 이렇게 하면 형식 프록시에서 내부 멤버에 쉽게 액세스할 수 있습니다.

DebuggerTypeProxyAttribute가 어셈블리 수준에서 사용된 경우 Target 매개 변수는 해당 프록시가 대신하는 형식을 지정합니다.

이 특성을 DebuggerDisplayAttributeDebuggerTypeProxyAttribute와 함께 사용하는 방법에 대한 예제는 DebuggerDisplay 특성 사용을 참조하십시오.

DebuggerTypeProxy와 함께 제네릭 사용

제네릭에 대한 지원은 제한되어 있습니다. C#의 경우 DebuggerTypeProxy는 개방형 형식만 지원합니다. 생성되지 않은 형식이라고도 하는 개방형 형식은 해당 형식 매개 변수의 인수를 사용하여 인스턴스화되지 않은 제네릭 형식입니다. 생성된 형식이라고도 하는 닫힌 형식은 지원되지 않습니다.

개방형 형식에 대한 구문은 다음과 같습니다.

Namespace.TypeName<,>

DebuggerTypeProxy에서 제네릭 형식을 대상으로 사용하는 경우 이 구문을 사용해야 합니다. DebuggerTypeProxy 메커니즘은 형식 매개 변수를 자동으로 유추합니다.

C#의 개방형 형식과 닫힌 형식에 대한 자세한 내용은 C# 언어 사양에서 개방형 형식 및 닫힌 형식에 대해 설명하는 단원 20.5.2를 참조하십시오.

Visual Basic에는 개방형 형식 구문이 없으므로 Visual Basic의 경우 이와 같은 작업을 수행할 수 없습니다. 대신, 개방형 형식 이름의 문자열 표현을 사용해야 합니다.

"Namespace.TypeName'2"

참고 항목

개념

사용자 지정 데이터 형식 표시

디버거 표시 특성을 사용하여 디버깅 향상

참조

DebuggerDisplay 특성 사용