Visual Studio如何从调试器中序列化对象

128

我正在尝试调查一个崩溃转储文件中的错误(因此无法更改代码)。我有一个非常复杂的对象(序列化表示中有数千行),它的状态不一致。为了调查其状态,Visual Studio调试器视图无用。但该对象有一个数据契约。我想将其序列化,然后使用我喜欢的文本编辑器浏览整个对象。是否可以在调试器中完成这个操作?


请注意,如果您有一些自定义容器类或其他类在调试过程中需要多次查看,但 IntelliSense 和 QuickView 无法识别它们,您可以为 VS 编写一个扩展程序来帮助在调试中显示您的自定义类。 - Csaba Toth
许多好的技巧也可以在这里找到:https://dev59.com/A3RC5IYBdhLWcg3wP-r5 - Josh
12个回答

1

看起来很有前途,但对我完全没用。 - Leon V

0
一个关于Alexey答案的变化。稍微复杂一些,但不涉及写入文本文件:
1)在即时窗口中输入:
System.IO.StringWriter stringWriter = new System.IO.StringWriter();  

2) 在监视窗口中输入两个监视器:

a.  stringWriter

b.  new System.Xml.Serialization.XmlSerializer(obj.GetType()).Serialize(stringWriter, obj) 

在输入第二个观察器(序列化观察器)后,stringWriter 观察器的值将被设置为 obj 序列化为 XML。复制并粘贴它。请注意,XML 将被括在花括号 {...} 中,因此如果您想要将 XML 用于任何事情,您需要将它们删除。


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