隐藏调试器中的字段

时间:2009-04-16 00:58:20

标签: c# debugging

是否可以隐藏字段和/或属性以显示在调试器监视窗口中?看,我们这里有一个有50多个私人领域的课程,其中大部分是通过公共场所公开的。这意味着我们在观察窗口列表中看到了大量数据的重复。

有没有办法控制这个?

5 个答案:

答案 0 :(得分:61)

尝试此属性:

 [DebuggerBrowsable(DebuggerBrowsableState.Never)]

使用它来隐藏您的支持字段,方法是将属性放在字段声明上方,如下所示:

class Foo
{
    [DebuggerBrowsable(DebuggerBrowsableState.Never)]
    int bar;  // this one will be hidden
    int baz;  // but this one will be visible like normal
}

请记住,DebuggerBrowsableState枚举还有另外两个成员:

  

Collapsed: 折叠调试器中的元素    RootHidden: 这会显示集合的子元素,但会隐藏根元素本身。

答案 1 :(得分:6)

查看DebuggerBrowsableAttribute:

http://msdn.microsoft.com/en-us/library/system.diagnostics.debuggerbrowsableattribute.aspx

事实上,本文对此领域提供了一些非常有用的提示:

http://msdn.microsoft.com/en-us/magazine/cc163974.aspx

您可能会发现使用DebuggerTypeProxy更有意义。这允许您提供类型的“自定义视图”。

答案 2 :(得分:1)

另一个SO question涵盖了DebuggerBrowsableAttribute。如果您正在大量使用C#,那么阅读它是一个很好的问题。

答案 3 :(得分:1)

我知道这已经过时但是使用DebuggerTypeProxy http://msdn.microsoft.com/en-us/library/d8eyd8zc.aspx

会更好

通过这种方式,您不必使用丑陋的属性修改您的类,并且额外的好处是,如果您确实需要查看其中一个“隐藏”字段,您可以始终查看真实类型。

答案 4 :(得分:-1)

您可以使用汽车代替本地人或使用手表,只观看感兴趣的变量...