親メソッドを返しません。 a NullReferenceException
、私はそれが上記とまったく同じ方法を呼び出すことを望みながら。C#GetMethodは、私は以下のクラスツリーを持って
私はいくつかのバインディングフラグを無駄にしようとしました。どんな助け?
親メソッドを返しません。 a NullReferenceException
、私はそれが上記とまったく同じ方法を呼び出すことを望みながら。C#GetMethodは、私は以下のクラスツリーを持って
私はいくつかのバインディングフラグを無駄にしようとしました。どんな助け?
overloadsにはBindingFlags
というパラメータを使用し、FlattenHierarchy
を含める必要があります。
階層の上にある公開および保護された静的メンバーを返すように指定します。継承されたクラスのプライベートな静的メンバーは返されません。静的メンバーには、フィールド、メソッド、イベント、およびプロパティが含まれます。ネストされた型は返されません。
(今の質問はそれらを公開するように変更された、プライベート静的メソッドについてのポイントを削除するように編集。)
あなたは階層を検索するためにGetMethod
にBindingFlags.FlattenHierarchy
フラグを渡す必要があります:
typeof(C).GetMethod("GetMe", BindingFlags.FlattenHierarchy, null, new Type[] { typeof(SomeOtherClass) }, null)).Invoke(null, parameter));
私は 'FlattenHierarchy'を見逃したようです。ありがとう、私は今それを試してみましょう! –
'FlattenHierarchy'だけでなく' Public'と 'Static'も追加することでそれを解決しました。 –
このメソッドはpublic staticで、私は質問を誤って入力しました。ありがとう! –
@SebastiánVansteenkiste:その場合は、バインディングフラグを変更してFlattenHierarchy(および静的、public)を含めるだけで問題ありません。 –
多くの感謝!将来世代のために: 'typeof(C).GetMethod(" GetMe "、BindingFlags.FlattenHierarchy | BindingFlags.Public | BindingFlags.Static、null、new Type [] {typeof(SomeOtherClass)}、null))。 、パラメータ)); 'トリックをしました。 –