在Visual Studio 2015(以及某些旧版本)中,在调试C#代码时,可以string
通过带有放大镜图标的下拉列表在各种可视化工具(文本,XML,HTML,JSON)中显示变量的值.例如,这也适用于某些非字符串类型System.Xml.Linq.XElement
.是否可以使用这些内置可视化工具来显示我自己的自定义类型变量的值?
语境:
我需要能够快速检查复杂自定义类型的状态,该类型只能在多行文本环境中可接受地显示.
如果我正确理解您的问题,那么您可以使用DebuggerTypeProxy实现您的目标.它会导致调试器在您检查复杂类型的对象时创建和显示代理对象.
在下面的示例中,代理对象包含一个(多行)字符串属性,您可以使用文本可视化工具查看该属性.如果你仍然需要查看底层对象本身,那么这就是Raw view
按钮的用途.
[DebuggerTypeProxy(typeof(ComplexTypeProxy))] class ComplexType { // complex state } class ComplexTypeProxy { public string Display { get { return "Create a multi-line representation of _content's complex state here."; } } private ComplexType _content; public ComplexTypeProxy(ComplexType content) { _content = content; } }