我记得有一段时间以前可能会有一些方法可能是Reflection命名空间,它会在所有对象的属性上递归运行ToString()
并将其格式化以便显示。
是的,我知道我想要的一切都可以通过调试器访问,但我想知道是否有人知道这个命令?
答案 0 :(得分:8)
我认为您正在寻找的是/被称为ObjectDumper。它使用反射来迭代并输出对象的所有不同属性。我在学习LINQ时第一次听说过它,而Linq in Action一书中的大多数例子都使用它。
看来微软并没有将它包含在Linq的最终版本中,但是代码仍然存在。我做了一个快速的谷歌搜索,这里有一个链接:
答案 1 :(得分:4)
转储对象及其属性的示例代码可以在这里找到:
答案 2 :(得分:1)
你可以自己写。例如,使用Newtonsoft的JSON.net库将其序列化为json,并将json写入控制台。这是一个例子:
using Newtonsoft.Json;
static class Pretty
{
public static void Print<T> (T x)
{
string json = JsonConvert.SerializeObject(x, Formatting.Indented);
Console.WriteLine(json);
}
}
用法:
Pretty.Print(whatever);
答案 3 :(得分:0)
我当然可以看到在这样的东西中使用,但在.Net中你不会只获得一个类型名称列表(String,Array等)吗?大多数内置函数没有预先编写的“有用”ToString()重载,是吗?
答案 4 :(得分:0)
以下是与代码转储程序和演示项目的链接,该项目向您展示如何使用它。 Download it here