C# 人类可读格式的非侵入式序列化程序

C# 人类可读格式的非侵入式序列化程序,c#,.net-4.0,C#,.net 4.0,我需要以可读的格式转储第三方类的对象,因此我无法为此类提供DataContract属性,也无法添加XmlSerializer所需的默认构造函数。实现自定义序列化也不可取,因为它的主要目的是调试,并且可以应用于许多不同的类。我正在寻找一个序列化程序,它通过反射检查给定对象(只有公共部分?),并将其转储到可读的对象,即使XML也可以;) JSON格式非常易于理解:内置于框架中,允许您将任何实例序列化为JSON格式。当然,限制也适用:如果对象图包含循环引用,您将无法对其进行JSON序列化。?我建议JS

我需要以可读的格式转储第三方类的对象,因此我无法为此类提供DataContract属性,也无法添加XmlSerializer所需的默认构造函数。实现自定义序列化也不可取,因为它的主要目的是调试,并且可以应用于许多不同的类。我正在寻找一个序列化程序,它通过反射检查给定对象(只有公共部分?),并将其转储到可读的对象,即使XML也可以;)

JSON格式非常易于理解:内置于框架中,允许您将任何实例序列化为JSON格式。当然,限制也适用:如果对象图包含循环引用,您将无法对其进行JSON序列化。

?我建议JSON.net通常在任何非平凡场景中都能更好地工作,但事实上-JSON可能是这里要考虑的问题,但是循环引用由JSON.net序列化程序处理。此外,还有更多。它似乎是“System.Web.Extensions”程序集的一部分。在C#ConsoleApplication项目中尝试添加引用时,我在列表中没有看到它。请确保在项目属性中针对完整框架,而不仅仅是客户端配置文件。