J'ai un MethodInfo passé pour une fonction et je veux faire ce qui suitComment puis-je déterminer si une méthode est une instance générique d'une méthode générique
MethodInfo containsMethod = typeof(ICollection<>).GetMethod("Contains");
if (methodInfo.Equals(containsMethod)
{
// do something
}
Mais cela ne fonctionne pas parce que le METHODINFO a un type générique spécifique. Car l'exemple fonctionne si je savais que ICollection était toujours de type string.
MethodInfo containsMethod = typeof(ICollection<string>).GetMethod("Contains");
if (methodInfo.Equals(containsMethod)
{
// do something
}
Comment puis-je vérifier si le MethodInfo est une dactylographiées toute instance de la méthode générique sans se soucier de ce type est?
Merci.
EDIT: Question clarification
Comme l'a souligné à juste titre la méthode n'est pas générique, mais la classe contenant est si la question est plus comment je savoir si le MethodInfo est pour un type qui est une instance typée de ICollection <>.
EDIT: contexte plus
Je suis en train d'écrire un fournisseur LINQ et essayer de gérer le « dans » cas
IList<string> myList = new List<string>{ "1", "2" };
from Something s in ...
where myList.Contains(s.name)
select s;
OMI le plus simple et le plus clair, merci. –