저는 종종 최대 100 개의 속성을 가진 모델 클래스를 볼 수있는 레거시 프로젝트가 있으며 디버깅하는 동안 순서가 지정된 데이터 순서이므로 특정 순서로 보려고합니다. Visual Studio 디버거가 이름순으로 정렬하는 대신 특정 순서로 표시하도록하는 특성이 있습니까?VS에서 검사 할 때 개체의 속성을 특정 순서로 표시하는 방법은 무엇입니까?
2
A
답변
1
디버거 설명을 사용자 정의하려면 DebuggerDisplayAttribute 클래스를 사용할 수 있습니다. MSDN에서 읽어보십시오.
특정 클래스에 속성을 추가하면 디버깅 중 설명을 보는 방법을 정의 할 수 있습니다.
MSDN의 한 가지 예입니다. 여기 value
및 key
디버깅하는 동안 더 볼 수 있습니다 : 여기
[DebuggerDisplay("{value}", Name = "{key}")]
internal class KeyValuePairs
{
private IDictionary dictionary;
private object key;
private object value;
public KeyValuePairs(IDictionary dictionary, object key, object value)
{
this.value = value;
this.key = key;
this.dictionary = dictionary;
}
}
디버깅하는 동안 값과 키를 참조하는 것이 더 쉬울 수 있습니다.DebuggerBrowsableAttribute 어떤 디버거에서 특정 멤버를 표시할지 결정할 수 있습니다. 일부 회원을 숨길 수도 있습니다. 여기
는 DebuggerBrowsableAttribute의 몇 가지 예입니다public class User { [DebuggerBrowsable(DebuggerBrowsableState.Collapsed)] public string Login { get; set; } [DebuggerBrowsable(DebuggerBrowsableState.RootHidden)] public FullName Name { get; set; } [DebuggerBrowsable(DebuggerBrowsableState.Never)] public string HashedPassword { get; set; } }
당신이 재산
HashedPassword
디버깅에서 숨겨집니다시피.또한 Visual Studio에서 Watch 창을 사용하고 추적 할 변수를 구성 할 수 있습니다.
0
DebuggerDisplay
속성을 사용하여 디버깅하는 동안 툴팁에 데이터가 표시되는 방식을 제어 할 수 있습니다.
[DebuggerDisplay("Age = {Age}, Name = '{Name}'")]
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
}