非ジェネリック型のジェネリック メソッドの MethodInfo を取得するために、どの引数を Type.GetMethod に渡すかがわからないという小さな問題があります。具体的には、次の型定義があります。
public static class A
{
public static B F<T>(bool dummy)
{
}
public static B F<T>(IEnumerable<T> arg)
{
...
}
}
Type.GetMethod でいくつか試してみましたが、F メソッドの MethodInfo を返すものはありませんでした。
Type.GetMethods または Type.FindMember を呼び出すことができることは承知していますが、Type.GetMethod に興味があります。
何か案は?
ありがとう。
編集
実際、私のコードはもう少し複雑です。ジェネリック メソッドはオーバーロードされているため、Type.GetMethod を関数名だけで使用することはできません。私はこれらの変種を試しました:
typeof(A).GetMethod("F", BindingFlags.Static | BindingFlags.Public, null, new Type[]{ typeof(IEnumerable<>) }, null)
typeof(A).GetMethod("F`1", BindingFlags.Static | BindingFlags.Public, null, new Type[]{ typeof(IEnumerable<>) }, null)
typeof(A).GetMethod("F[T]", BindingFlags.Static | BindingFlags.Public, null, new Type[]{ typeof(IEnumerable<>) }, null)
typeof(A).GetMethod("F[[T]]", BindingFlags.Static | BindingFlags.Public, null, new Type[]{ typeof(IEnumerable<>) }, null)