0
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或其中的任何内容。
如果我有很多自动生成的静态属性,我该如何转储所有内容?

4

2 回答 2

1

反思作品

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

在此处输入图像描述

于 2019-01-15T00:11:40.710 回答
0

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

您可以通过使用查看静态变量

(Test.b).Dump();
(Test.C.e).Dump();

希望这可以帮助。

于 2011-03-29T04:44:33.687 回答