mar*_*ark 4 debugging visual-studio-2008 debuggerdisplay
我知道这个属性应该在C#中起作用,但在我的情况下却没有.我有一个懒惰的孩子班级.访问此属性可能会产生向服务器往返的副作用.因此,当我在调试器观察窗口中观看时,我不希望发生这种情况.
省略所有不相关的细节,源代码看起来非常普通:
[DebuggerDisplay("(Frozen) {m_children}")]
public IList<IEntityBase> Children
{
get
{
if (m_children == null)
{
m_children = FetchChildrenFromDB(this);
}
return m_children;
}
}
Run Code Online (Sandbox Code Playgroud)
然而,当我观察对象并this在观察窗口中展开时,我在显示中看不到(冻结),这意味着调试器只是忽略该属性.
如果图像链接仍然有效,则应在下面显示:http : //i28.tinypic.com/2zxo9s5.jpg DebuggerDisplay image snapshot http://i28.tinypic.com/2zxo9s5.jpg
根据Reflector的说法,该属性确实存在.我用的是VS2008.
有任何想法吗?
如果您在观察窗口中看到以下内容:
[+] ObjectName | { namespace.object}
Run Code Online (Sandbox Code Playgroud)
确保未选中"工具 - >选项 - >调试 - >常规 - >显示变量窗口中对象的原始结构".
一旦我清除了这个,我的DebuggerDisplay属性就会正确显示(包括显示我所添加的所有"WTF"和"Huh"......)
| 归档时间: |
|
| 查看次数: |
1011 次 |
| 最近记录: |