我有一个包含很多静态类的静态类。每个内部静态类都包含字段。我想获取所有内部静态类的所有字段。
public static class MyClass
{
public static class MyInnerClass1
{
public const string Field1 = "abc";
public const string Field2 = "def";
public const string Field3 = "ghi";
}
public static class MyInnerClass2
{
public const int Field1 = 1;
public const int Field2 = 2;
public const int Field3 = 3;
}
...
}
我想打印出每个内部类的名称,然后是每个字段的名称和值。
例如:
我的内部类
字段 1 = "abc"
...
获取所有类的名称我没有问题:
var members = typeof(MyClass).GetMembers(BindingFlags.Public | BindingFlags.Static);
var str = "";
foreach (var member in members)
{
str += member.Name +" ";
}
或者特定类中所有字段的名称和值:
var fields = typeof(MyClass.MyInnerClass1).GetFields();
foreach (var field in fields)
{
str += field.Name + "-";
str += field.GetValue(typeof(MyClass.MyInnerClass1));
}
但是我该如何结合呢?内部静态类的名称和数量可能会改变。