假设我有一个对象:
[DebuggerDisplay("Bar={bar}")]
public class Foo
{
public String bar{get;set;}
}
当我有一个bar实例时,调试器会正确显示Bar="value of bar"
但是当我有一个Foo
字典时,字典显示:
{[key, namespace.Foo]}
当我展开kvp时,我得到了预期的调试器显示字符串。
当我覆盖ToString()
中的Foo
并拥有Foo
字典时
字典显示:
{[key, Bar="value of bar"]}
根据文档,如果ToString()
属性没有覆盖它,DebuggerDisplay
仅用于调试器显示...
除了单个实例外,如何让debuggerDisplay属性覆盖枚举情况下的调试器字符串?
答案 0 :(得分:1)
此问题的优雅解决方案是应用DebuggerDisplay
属性为System.Collections.Generic.KeyValuePair<TKey,TValue>
通过AssemblyInfo.cs
如下:
using System.Collections.Generic;
using System.Diagnostics;
[assembly: DebuggerDisplay("[Key={Key}, Value={Value}]", Target = typeof(KeyValuePair<,>))]