1

私は反射を理解しようとしています。リフレクションを使用してオブジェクトからプロパティを取得しようとしています。最初に使っていた

var propertiesForManuallyCreated = typeof(T).GetProperties();

しかし、基本プロパティを取得していないことに気付きました。私は試した

var propertiesForManuallyCreatedBase = typeof(T).BaseType.GetProperties();

しかし、それは基本的なプロパティを取得しませんでした。基本プロパティを取得するにはどうすればよいですか? 以下は、ベースと言うときに私が話していることのイメージです。

ローカル画像

4

1 に答える 1

6

Type.GetProperties(BindingFlags)の値をパラメータとしてオーバーロードを使用する必要がありBindingFlags.FlattenHierarchyます。

var propertiesForManuallyCreated =
    typeof(T).GetProperties(BindingFlags.FlattenHierarchy);

MSDN によると:

FlattenHierarchy

階層の上位にあるパブリックおよび保護された静的メンバーを返す必要があることを指定します。継承されたクラスのプライベート静的メンバーは返されません。静的メンバーには、フィールド、メソッド、イベント、およびプロパティが含まれます。ネストされた型は返されません。

于 2013-06-24T22:51:42.077 に答える