我有一个遗留项目,我经常可以看到具有多达100个属性的模型类,而在调试时我希望按特定顺序查看它们,因为它是一个有序的数据序列。是否有任何类型的属性可以使Visual Studio调试器以特定顺序显示它们而不是按名称对它们进行排序?
答案 0 :(得分: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窗口并配置要跟踪的变量。
答案 1 :(得分:0)
您可以使用DebuggerDisplay
属性来控制数据在工具提示中的显示方式,例如调试。
[DebuggerDisplay("Age = {Age}, Name = '{Name}'")]
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
}
供参考: