如何让DebuggerBrowsable RootHidden工作?

我昨天读到了DebuggerBrowsable属性,听起来很棒,但是当我试图让它在测试中工作时,它似乎没有任何区别。 我正在使用VS 2008版本9.0.30729 1 SP,.Net 3.5 SP1,MSTest框架

[TestClass] public class TestingDebuggerBrowsable { [TestMethod] public void JustToDemonstrateDebugging() { var foo = new MyExposedClass(); foo.ToString(); // I put a breakpoint here, and debugged the test } } public class MyExposedClass { public MyExposedClass() { ShouldBeSeeingThisInMyDebugger = new List {"foo", "bar"}; } [DebuggerBrowsable(DebuggerBrowsableState.RootHidden)] public IList ShouldBeSeeingThisInMyDebugger { get; set; } } 

当我将鼠标hover在foo上时,我得到了通常的Listation of List,我必须向下钻取几个级别来获取元素,与省略属性没什么不同。

我希望将鼠标hover在ShouldBeSeeingThisInMyDebugger属性上,然后查看集合的元素。

编辑:尽管使用相同的IDE和框架,似乎这是在Jeroen的机器上工作,但不是我的机器。 我很想知道是否有其他人和我有同样的问题。

添加属性后,您将获得:

 foo {Sample.MyExposedClass} [0] "foo" [1] "bar" Raw View 

如果没有您获得的属性:

 foo {Sample.MyExposedClass} ShouldBeSeeingThisInMyDebugger Count = 2 [0] "foo" [1] "bar" Raw View 

因此省略了属性ShouldBeSeeingThisInMyDebugger (隐藏了根)。 正如属性所说的那样。

根据MSDN,它说RootHidden只会隐藏根元素并扩展子项目以显示当你将鼠标hover在它上面时 –

这是另一个解释每个属性的作用的链接 –

http://www.dev102.com/2009/04/09/debuggerdisplay-and-debuggerbrowsable-two-debugger-attributes-you-should-know/