2010-09-10 68 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