Visual Studio Debugger可以显示未引用/未转义的字符串吗?

Cod*_*Fox 15 c# debugging debuggervisualizer visual-studio visual-studio-2012

Visual Studio中的托管调试器(我使用的是11.0)显示包含双引号和反斜杠的字符串值,如下所示:

"{\"Text\":\"C:\\\\Temp\"}"
Run Code Online (Sandbox Code Playgroud)

偶尔我想以简单的形式显示像上面那样的转义文本:

{"Text":"C:\\Temp"}
Run Code Online (Sandbox Code Playgroud)

我知道文本可视化器可以通过值旁边的放大镜访问,但是在调试一些文本操作例程时这很麻烦.

有没有办法在调试器中更改字符串值的显示?

Ome*_*viv 16

我看到两个选项可能不那么麻烦,然后每次点击放大镜,具体取决于具体情况:

  1. 右键单击该值并单击"添加到监视",然后编辑添加到监视的表达式并在末尾添加,nq("无引号" 格式说明符).例如,"myJsonObject.JsonText,nq".从那时起,查看Watch窗口(而不是数据提示),以便在单步执行代码时查看值.

  2. 使用OzCode,右键单击表达式并选择" 添加自定义表达式",然后,nq在末尾添加自定义表达式.例如:[obj].JsonText,nq.

完全披露: OzCode是我合作的商业VS扩展,目前在测试版中免费.


use*_*841 6

我刚刚在调试器窗口中找到了另一种方法.

代替

?myStringVariable
Run Code Online (Sandbox Code Playgroud)

使用

System.Diagnostics.Debug.print(myStringVariable, {"nq"})
Run Code Online (Sandbox Code Playgroud)

这似乎阻止了双引号.

编辑:一种更简单的方法:

?myStringVariable,nq
Run Code Online (Sandbox Code Playgroud)

这在Visual Studio 2015中为我工作