静的クラスが多く含まれています。各内部静的クラスにはフィールドが含まれます。すべての内部静的クラスのフィールドを取得したい。静的クラス内のすべてのフィールドを静的クラス内のリフレクションで取得する
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;
}
...
}
それぞれの内部クラスの名前の後ろに、各フィールドの名前と値を印刷したいと思います。例えば
:
MyInnerClass
フィールド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));
}
しかし、私はこれをどのように組み合わせるのですか? 内部静的クラスの名前と数が変更されることがあります。