Tengo un MethodInfo pasados a una función y quiero hacer lo siguiente¿Cómo puedo determinar si un método es un ejemplo genérico de un método genérico
MethodInfo containsMethod = typeof(ICollection<>).GetMethod("Contains");
if (methodInfo.Equals(containsMethod)
{
// do something
}
Pero esto no funciona debido a que el MethodInfo tiene un tipo genérico específico. El ejemplo funciona si sabía que ICollection siempre era de tipo cadena.
MethodInfo containsMethod = typeof(ICollection<string>).GetMethod("Contains");
if (methodInfo.Equals(containsMethod)
{
// do something
}
¿Cómo puedo comprobar si el MethodInfo es una CUALQUIER mecanografiadas instancia del método genérico, sin preocuparse de lo que es el tipo?
Gracias.
EDIT: aclaración Pregunta
Como señaló correctamente el método no es genérico, pero la clase que contiene es así que la pregunta es más cómo averiguo si el MethodInfo es de un tipo que es una instancia de mecanografiada de ICollection <>.
EDIT: más contexto
Estoy escribiendo un proveedor de LINQ y tratando de manejar el "en" caso
IList<string> myList = new List<string>{ "1", "2" };
from Something s in ...
where myList.Contains(s.name)
select s;
OMI más simple y clara, gracias. –