2012-09-10 11 views

答えて

19

overloadsにはBindingFlagsというパラメータを使用し、FlattenHierarchyを含める必要があります。

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

(今の質問はそれらを公開するように変更された、プライベート静的メソッドについてのポイントを削除するように編集。)

+0

このメソッドはpublic staticで、私は質問を誤って入力しました。ありがとう! –

+1

@SebastiánVansteenkiste:その場合は、バインディングフラグを変更してFlattenHierarchy(および静的、public)を含めるだけで問題ありません。 –

+0

多くの感謝!将来世代のために: 'typeof(C).GetMethod(" GetMe "、BindingFlags.FlattenHierarchy | BindingFlags.Public | BindingFlags.Static、null、new Type [] {typeof(SomeOtherClass)}、null))。 、パラメータ)); 'トリックをしました。 –

4

あなたは階層を検索するためにGetMethodBindingFlags.FlattenHierarchyフラグを渡す必要があります:

typeof(C).GetMethod("GetMe", BindingFlags.FlattenHierarchy, null, new Type[] { typeof(SomeOtherClass) }, null)).Invoke(null, parameter)); 
+0

私は 'FlattenHierarchy'を見逃したようです。ありがとう、私は今それを試してみましょう! –

+1

'FlattenHierarchy'だけでなく' Public'と 'Static'も追加することでそれを解決しました。 –

関連する問題