我昨天读到了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<string> {"foo", "bar"};
}
[DebuggerBrowsable(DebuggerBrowsableState.RootHidden)]
public IList<string> ShouldBeSeeingThisInMyDebugger { get; set; }
}
当我将鼠标悬停在foo上时,我得到了通常的Listation,我必须向下钻取几个级别以获取元素,这与我省略属性没有区别。
我希望将鼠标悬停在ShouldBeSeeingThisInMyDebugger属性上,并查看该集合的元素。
编辑: 尽管使用相同的IDE和框架,似乎这是在Jeroen的机器上工作,但不是我的机器。我很想知道是否有其他人和我有同样的问题。
答案 0 :(得分:2)
添加属性后,您将获得:
foo {Sample.MyExposedClass}
[0] "foo"
[1] "bar"
Raw View
没有您获得的属性:
foo {Sample.MyExposedClass}
ShouldBeSeeingThisInMyDebugger Count = 2
[0] "foo"
[1] "bar"
Raw View
因此省略了属性ShouldBeSeeingThisInMyDebugger
(隐藏了根)。正如该属性所说的那样。
答案 1 :(得分:0)
根据MSDN,它说RootHidden只会隐藏根元素并扩展子项目,以便在鼠标悬停在它上面时显示 -
这里有另一个链接来解释每个属性的作用 -