什么是PHP var_dump的.NET等价物?

时间:2008-09-18 15:40:47

标签: .net reflection

我记得有一段时间以前可能会有一些方法可能是Reflection命名空间,它会在所有对象的属性上递归运行ToString()并将其格式化以便显示。

是的,我知道我想要的一切都可以通过调试器访问,但我想知道是否有人知道这个命令?

5 个答案:

答案 0 :(得分:8)

我认为您正在寻找的是/被称为ObjectDumper。它使用反射来迭代并输出对象的所有不同属性。我在学习LINQ时第一次听说过它,而Linq in Action一书中的大多数例子都使用它。

看来微软并没有将它包含在Linq的最终版本中,但是代码仍然存在。我做了一个快速的谷歌搜索,这里有一个链接:

ObjectDumper Source Code

答案 1 :(得分:4)

转储对象及其属性的示例代码可以在这里找到:

http://www.developer.com/net/csharp/article.php/3713886

答案 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