字典的键值对如何使用DebuggerDisplay调试?

7

是否可以为字典的定义分配System.Diagnostics.DebuggerDisplay属性?

例如:

Dictionary<int, SomeClass> 
[System.Diagnostics.DebuggerDisplay("{Info,nq}")]
public class SomeClass{

    string code {get;set;}

    public string Info { get { return "info" + code; }}
}


// place an attribute here??
[System.Diagnostics.DebuggerDisplay("{???,nq}")]
Dictionary<int, SomeClass> dict = new Dictionary<int, SomeClass>();
1个回答

7

编辑:请参见此答案

虽然我没有实践过,但从文档中可以看出,可以在程序集级别应用此属性。因此理论上,您可以像这样操作:

[assembly: DebuggerDisplay("{Key,nq}: {Value,nq}", Target = typeof(KeyValuePair<int, SomeClass>))]

如果你指定一个开放式泛型类型作为Target,比如Target = typeof(KeyValuePair<,>),它能够让你顺利通过检测,我会感到惊讶。但是如果你确实需要这样做,那就值得一试!


在 Visual Studio 2022 中这个不起作用。 - Sod Almighty

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接