Tengo este pequeño problema, que no puedo descifrar qué argumentos pasar a Type.GetMethod para recuperar el MethodInfo de un método genérico en un tipo no genérico. Específicamente, tengo esta definición de tipo:¿Cómo obtener MethodInfo de un método genérico en un tipo .NET no genérico?
public static class A
{
public static B F<T>(bool dummy)
{
}
public static B F<T>(IEnumerable<T> arg)
{
...
}
}
He intentado varias tomas al Type.GetMethod, pero ninguno devolvería la MethodInfo del método F.
Soy consciente de que puedo invocar Type.GetMethods o incluso Type.FindMember, pero estoy interesado en Type.GetMethod.
¿Alguna idea?
Gracias.
EDITAR
En realidad, mi código es un poco más compleja. El método genérico está sobrecargado, por lo que no puedo usar Type.GetMethod con solo el nombre de la función. Probé estas variantes:
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)
Por favor, publique el código que ha intentado. –
Ha cambiado mi pregunta. Gracias. – mark
@Mark Cambié mi respuesta. –