この属性は C# で機能するはずですが、私の場合は機能しません。私は怠惰なプロパティChildrenを持つクラスを持っています。このプロパティにアクセスすると、サーバーへのラウンドトリップという副作用が生じる場合があります。したがって、当然のことながら、デバッガーの監視ウィンドウで監視するだけでは、これが発生することは望ましくありません。
無関係な詳細をすべて省略すると、ソースはごく普通に見えます。
[DebuggerDisplay("(Frozen) {m_children}")]
public IList<IEntityBase> Children
{
get
{
if (m_children == null)
{
m_children = FetchChildrenFromDB(this);
}
return m_children;
}
}
それでも、オブジェクトを監視this
してウォッチ ウィンドウで展開すると、ディスプレイに (Frozen) が表示されません。つまり、デバッガーは単に属性を無視します。
Reflector によると、この属性は実際に存在します。私はVS2008を使用しています。
何か案は?