古いバージョンの .NET (私は 1.1 プロジェクトに機能を追加していますが、残念です) では、既定のメソッドGetFields()
は空の配列を返します。1.1 以降、すべてのパブリック プロパティを含めるようにこのメソッドを更新しました。GetProperties()
同じことを行うメソッドが既にあるため、なぜこの変更を行ったのかわかりません。
この方法はプライベート フィールドに到達するための方法であるため、その使用方法に関する知識が重要です。メソッドGetFields(BindingFlags flags)のオーバーロードがあります。これは、BindingFlagsの組み合わせを使用して、オブジェクトから必要なフィールドを決定します。
したがって、インスタンスのプライベート フィールドが必要な場合は、次のように呼び出します。
GetFields(BindingFlags.Instance | BindingFlags.NonPublic);
public static プロパティのみが必要な場合は、次のように呼び出します。
GetFields(BindingFlags.Static | BindingFlags.Public);
すべての静的フィールドに対して引き続きそれらを結合することもできます。
GetFields(BindingFlags.Static | BindingFlags.Public | BindingFlags.NonPublic);
他にも多くの種類のBindingFlags
.