在linqpad中转储静态属性

时间:2011-03-29 03:43:56

标签: c# linqpad

public class Test
{
    public int a = 2;
    public static int b = 5;
    public struct C
    {
        public int d = 9;
        public static int e = 7;
    }
}

new Test().Dump();

上面的代码将转储新创建的对象并将a列为属性,但不会列出b或嵌套的静态结构C或其中的任何内容。 /> 如果我有很多自动生成的静态属性,我该如何转储所有内容?

2 个答案:

答案 0 :(得分:0)

静态实例变量不是您正在创建的“new Test()”实例的一部分。它们是Test类的静态实例的一部分。您可以阅读静态类和静态类成员here

您可以使用

查看静态变量
(Test.b).Dump();
(Test.C.e).Dump();

希望这有帮助。

答案 1 :(得分:0)

反思工作

typeof(Test)
.GetFields(BindingFlags.Static | BindingFlags.Public)
.Select(f => new { name = f.Name, value = f.GetValue(null)})
.Dump();

enter image description here