Answers:
在立即窗口中,键入
?name_of_variable
这将打印出所有内容,您可以手动将其复制到所需的任何位置,或使用即时窗口的日志记录功能将其自动写入文件。
更新:我假设您正在询问如何复制/粘贴值的嵌套结构,以便可以按文本进行搜索,也可以将其保存在侧面,然后将对象的状态与其进行比较。如果我是对的,您可能想检查一下我创建的Visual Studio商业扩展,称为OzCode,它使您可以通过“搜索”和“比较”功能更轻松地完成这些操作。
更新2为了回答@ppumkin的问题,或者新的EAP具有新的导出功能,允许用户将变量值导出到Json,XML,Excel或C#代码。
完全公开:我是这里描述的工具的共同创建者。
您可以在立即窗口中的代码下面运行,它将把对象的序列化XML表示导出到xml文件中:
(new System.Xml.Serialization.XmlSerializer(obj.GetType())).Serialize(new System.IO.StreamWriter(@"c:\temp\text.xml"), obj)
Cannot evaluate expression because the code of the current method is optimized.
???
File.WriteAllText(@"c:\movie.json", JsonConvert.SerializeObject(movie));
The debugger is unable to evaluate this expression
。我正在使用Visual Studio 2019; 我obj
用类型为变量的变量替换System.Collections.Generic.List 1[[System.ValueTuple 3[[System.String, System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[System.String, System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[System.String, System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]], System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7]]
最近有一个扩展对象导出器可以方便地执行此操作。
http://www.omarelabd.net/exporting-objects-from-the-visual-studio-debugger/
扩展名:https : //visualstudiogallery.msdn.microsoft.com/c6a21c68-f815-4895-999f-cd0885d8774f
您可以为该对象添加一个监视,然后在监视窗口中展开并选择要复制的所有内容,然后将其复制。
来自https://stackoverflow.com/a/23362097/2680660的最受欢迎答案:
运气好的话,您的appdomain中已经有了Json.Net。在这种情况下,将其弹出到“立即”窗口中:
Newtonsoft.Json.JsonConvert.SerializeObject(someVariable)
通过使用属性装饰类和方法,可以在调试期间使用DebuggerDisplay属性从对象显示中获取特定值,例如
[DebuggerDisplay("Person - {Name} is {Age} years old")]
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
}
Google引导了我一个长达8年的问题,最终我使用ObjectDumper实现了与复制粘贴调试器数据非常相似的功能。轻风轻拂。
我知道专门询问有关调试器信息的问题,但是ObjectDumper提供的信息基本相同。我假设那些用谷歌搜索这个问题的人和我一样,只需要数据用于调试目的,而不管它在技术上是否来自调试器。
我一直使用:
string myJsonString = JsonConvert.SerializeObject(<some object>);
然后我复制了字符串值,不幸的是还复制了反斜杠。
要消除反冲,请转到此处:https : //www.w3schools.com/jsref/tryit.asp?filename=tryjsref_replace
然后在<p id="demo">Visit Microsoft!</p>
元素中,将文本替换为您复制的文本。然后var res = str.replace("Microsoft", "W3Schools");
用
var res = str.replace(/\\/g, '')
运行这些新更改,但不要忘记单击右侧的“尝试”按钮。
现在,您应该拥有json格式的对象的所有文本,您可以将它们放在诸如http://jsonformatter.org之类的json格式器中,或者要创建POCO,现在可以使用http://json2csharp.com/
我只是右键单击该变量,然后选择AddWatch,这将打开由所有值组成的监视窗口。我选择了所有内容并将其粘贴到文本文本编辑器中,仅此而已。