2016-06-15 6 views
1

標準タイプのプロパティを持つクラスがあります。デバッガでは、この特定のプロパティを特定の形式で表示したいと考えています。私はその特定のプロパティでDebuggerDisplay属性を使用していますが、デバッガのウォッチウィンドウではクラス全体に適用されますが、プロパティを対象には適用されません。私は何が欠けていますか?ルールを可視化/フォーマットするプロパティレベルのデバッガを適用する方法プロパティ/フィールドにDebuggerDisplayAttributeを使用する

class Transaction : ITransaction 
{ 
    [DebuggerDisplay("{DateAsDebugString}")] 
    public DateTime Date 
    { 
     get;set; 
    } 

    string DateAsDebugString 
    { 
     get 
     { 
      var res = Date.ToShortDateString(); 
      if (Date.TimeOfDay != TimeSpan.Parse("00:00")) 
       res += " " + Date.TimeOfDay.ToString(); 
      return res; 
     } 
    } 

} 

enter image description here

+0

クラスレベルで 'DebuggerDisplayAttribute'テストを追加して有効になるかどうか試してみることはできますか? '[DebuggerDisplay(" Testing ")]'のようなものです。 –

+0

私は今開いているプロジェクトで簡単なテストを行い、あなたと同じ結果を得ています。私がMSDNで読んでいることから、これは正しい使い方です。なぜ私たちが期待しているように動作していないのか、少し難解です。 –

+0

はい、クラスレベルの属性はフィールドレベルをオーバーライドします。クラスインスタンスごとに "Testing"が表示されますが、プロパティは無視されます –

答えて

2

これは、hereと記載されているVisual Studio 2015のバグです。残念ながら、これまでに修正されていないようです。

Visual Studio 2013の同じコードでは、予期した結果が得られます。

関連する問題