Мне передали MethodInfo в функцию, и я хочу сделать следующее
MethodInfo containsMethod = typeof(ICollection<>).GetMethod("Contains");
if (methodInfo.Equals(containsMethod)
{
// do something
}
Но это не работает, потому что methodInfo имеет определенный универсальный тип. Для примера действительно работает, если бы я знал, что ICollection всегда имел тип string.
MethodInfo containsMethod = typeof(ICollection<string>).GetMethod("Contains");
if (methodInfo.Equals(containsMethod)
{
// do something
}
Как я могу проверить, является ли MethodInfo ЛЮБЫМ типизированным экземпляром универсального метода, не заботясь о том, что это за тип?
Спасибо.
РЕДАКТИРОВАТЬ: разъяснение вопроса
Как правильно указано, метод не является универсальным, но содержащий класс является таким, поэтому вопрос состоит в том, как узнать, предназначен ли MethodInfo для типа, который является типизированным экземпляром ICollection <>.
РЕДАКТИРОВАТЬ: больше контекста
Я пишу провайдеру Linq и пытаюсь обработать случай "in"
IList<string> myList = new List<string>{ "1", "2" };
from Something s in ...
where myList.Contains(s.name)
select s;