在Visual Studiodebugging模式下复制对象值

在Visual Studiodebugging模式下,可以将鼠标hover在variables上以显示其值,然后右键单击“复制”,“复制expression式”或“复制值”。

如果variables是一个对象而不仅仅是一个基本的types,有一个+号来展开和探索对象。 有没有办法将所有这些复制到剪贴板?

在即时窗口中,input

?NAME_OF_VARIABLE

这将打印出所有内容 ,并且您可以手动将其复制到您想要的任何位置,或使用即时窗口的日志loggingfunction自动将其写入文件。

更新 :我假设你问如何复制/粘贴值的嵌套结构,以便您可以文本search,或者可以保存在一边,然后比较对象的状态。 如果我是对的,你可能想看看我创build的Visual Studio的商业扩展,叫做OzCode ,它可以让你通过“search”和“比较”function更容易地完成这些事情。

更新2要回答@ ppumkin的问题,或新的EAP有一个新的导出function,用户可以将variables值导出到Json,XML,Excel或C#代码。

充分披露:我是我在这里描述的工具的共同创造者。

有一个最近的扩展对象导出器,这很方便。

http://www.omarelabd.net/exporting-objects-from-the-visual-studio-debugger/

扩展名: https : //visualstudiogallery.msdn.microsoft.com/c6a21c68-f815-4895-999f-cd0885d8774f

不完全是你所要求的,但你可以添加一个监视该对象,并在观察窗口,展开并select你想要复制的一切,然后复制它。

您可以在即时窗口中运行以下代码,并将其导出到xml文件,该对象的序列化XML表示forms:

(new System.Xml.Serialization.XmlSerializer(obj.GetType())).Serialize(new System.IO.StreamWriter(@"c:\temp\text.xml"), obj) 

来源: Visual Studio如何从debugging器序列化对象

通过使用属性来修饰你的类和方法,你可以在DebuggerDisplay属性的debugging过程中从你的对象显示中获得一个特定的值,例如

 [DebuggerDisplay("Person - {Name} is {Age} years old")] public class Person { public string Name { get; set; } public int Age { get; set; } }