2010-09-10 82 views
0

我昨天读了关于DebuggerBrowsable属性,听起来不错,但是当我试图让它在测试中工作时,它似乎没有任何区别。我使用VS 2008的版本9.0.30729 1个SP,净3.5 SP1,MSTest的框架如何让DebuggerBrowsable RootHidden工作?

[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; } 
    } 

当我将鼠标悬停在富,我得到的名单通常的代表,在那里我有几个层面深入到到达元素,与省略属性没有区别。

我曾希望将鼠标悬停在ShouldBeSeeingThisInMyDebugger属性上,并查看集合的元素。

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

回答

2

与属性添加你:

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

没有ATT ribute你得到:

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

所以与属性ShouldBeSeeingThisInMyDebugger被省略(根被隐藏)。就像属性所说的那样。

+0

你正在描述我希望看到的东西,但不是我所得到的。你是否使用与我一样的IDE和框架版本?在我的调试器中添加该属性使得我看到的没有差异。 – 2010-09-10 10:11:16

+0

我正在运行VS 2008,版本9.0.30271.1 SP,Microsoft .NET Framework 3.5 SP 1. – Jeroen 2010-09-10 10:53:47

+0

好奇。无论如何,无论如何都要尝试+1,对于我的构建设置或者阻止它在我的机器上工作的东西,必定会有一些神秘的差异 – 2010-09-10 11:53:55