다음을 통해 공유


DebuggerTypeProxy 특성(C#, Visual Basic, C++/CLI)을 사용하여 표시할 형식을 디버거에 알립니다.

DebuggerTypeProxyAttribute 는 형식에 대한 프록시 또는 스탠드인을 지정하고 디버거 창에 형식이 표시되는 방식을 변경합니다. 프록시가 있는 변수를 볼 때 프록시는 디스플레이의 원래 형식을 나타냅니다. 디버거 변수 창에는 프록시 형식의 공용 멤버만 표시됩니다. 프라이빗 멤버는 표시되지 않습니다.

이 특성은 다음을 적용할 수 있습니다.

  • 구조
  • 수업
  • 어셈블리

비고

네이티브 코드의 경우 이 특성은 C++/CLI 코드에서만 지원됩니다.

형식 프록시 클래스에는 프록시를 대체할 형식의 인수를 사용하는 생성자가 있어야 합니다. 디버거는 대상 형식의 변수를 표시해야 할 때마다 형식 프록시 클래스의 새 인스턴스를 만듭니다. 성능에 영향을 미칠 수 있습니다. 따라서 생성자에서 불필요한 작업을 방지합니다.

성능 저하를 최소화하기 위해, 식 평가자는 사용자가 디버거 창에서 + 기호를 클릭하거나 DebuggerBrowsableAttribute을 사용하여 형식을 확장하지 않는 이상, 형식의 표시 프록시에 대한 특성을 검사하지 않습니다. 따라서 표시 형식 자체에 특성을 배치하지 마세요. 특성은 표시 형식의 본문에서 사용할 수 있고 사용해야 합니다.

형식 프록시는 특성이 대상으로 하는 클래스 내에서 프라이빗 중첩 클래스가 되는 것이 좋습니다. 이렇게 하면 내부 멤버에 쉽게 액세스할 수 있습니다.

DebuggerTypeProxyAttribute 는 상속될 수 있으므로 기본 클래스에 형식 프록시를 지정하는 경우 파생 클래스가 고유한 형식 프록시를 지정하지 않는 한 파생 클래스에 적용됩니다.

어셈블리 수준에서 사용되는 경우 DebuggerTypeProxyAttribute 매개 변수는 Target 바꿀 프록시의 형식을 지정합니다.

이 특성과 함께 DebuggerDisplayAttribute 사용하는 방법의 예는 DebuggerTypeProxyAttributeDebuggerDisplay 특성 사용을 참조하세요.

중요합니다

변수 창에서 개체의 원시 구조 표시 옵션을 선택하면 특성이 DebuggerDisplay 무시됩니다. 이 설정은 모든 설정>디버깅> 섹션의 도구>옵션 창에 있습니다.

중요합니다

변수 창에서 개체의 원시 구조 표시 옵션을 선택하면 특성이 DebuggerDisplay 무시됩니다. 이 설정은 디버깅> 섹션의 도구> 대화 상자에 있습니다.

DebuggerTypeProxy에서 제네릭 사용

제네릭에 대한 지원은 제한적입니다. C#의 DebuggerTypeProxy 경우 열린 형식만 지원합니다. 구조화되지 않은 형식이라고도 하는 개방형 형식은 형식 매개 변수에 대한 인수로 인스턴스화되지 않은 제네릭 형식입니다. 생성된 형식이라고도 하는 닫힌 형식은 지원되지 않습니다.

열린 형식의 구문은 다음과 같습니다.

Namespace.TypeName<,>

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

C#의 열기 및 닫힌 형식에 대한 자세한 내용은 C# 언어 사양 섹션 20.5.2 열기 및 닫힌 형식을 참조하세요.

Visual Basic에는 열린 형식 구문이 없으므로 Visual Basic에서 동일한 작업을 수행할 수 없습니다. 대신 열린 형식 이름의 문자열 표현을 사용해야 합니다.

"Namespace.TypeName'2"