异常 - 将对象转换为字符串?

时间:2013-08-30 09:01:40

标签: c# vb.net serialization

当我的VB.Net应用程序崩溃时,我试图收集尽可能多的信息。

我有一些我需要转换为字符串的对象,所以我可以通过电子邮件将对象值发送给我。

如何将对象转换为字符串 - 即使它们不可序列化?

在我的测试中,如果我尝试序列化我的测试对象,我会收到一个错误,因为它继承自IDictionary,因此无法序列化。但是我可以将它添加到“Watch”窗口并仍然可以看到它的所有属性。那么必须有一种方法将非可序列化对象转换为字符串吗?

3 个答案:

答案 0 :(得分:2)

我之前有过这样的问题 - Logging instance data

因此,您可以使用反射并通过您自己的属性,或者您可以采取已经编写的内容,例如ServiceStack具有转储方法: http://www.servicestack.net/mythz_blog/?p=202

顺便说一下,不确定你的意思是“不可序列化”。如果无法使用默认.net类将对象序列化为xml,则这并不意味着无法使用自定义类或不同的序列化格式(如JSON或二进制文件)对其进行序列化。

答案 1 :(得分:1)

您可以使用反射

来完成

Reflection (C# Programming Guide)

答案 2 :(得分:0)

那么,你基本上要求一种序列化对象的方法吗?例如,为什么不尝试将其序列化为Json。我敢肯定它可以处理IDictionary类型。试一试:json.codeplex.com