私はこのジェネリックメソッドのMethodInfoを非ジェネリック型に戻すために、どの引数をType.GetMethodに渡すべきかを理解できません。 は具体的に、私はこのタイプの定義を持っている:私はいくつかを試してみましたジェネリックメソッドのMethodInfoを非汎用.NETタイプで取得するにはどうすればよいですか?
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に興味があります。
アイデア?
ありがとうございました。
EDIT
は実は、私のコードは、もう少し複雑です。ジェネリックメソッドはオーバーロードされているので、関数名だけで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)
あなたが試したコードを投稿してください。 –
私の質問が変更されました。ありがとう。 – mark
@マーク私は自分の答えを変えました。 –