Obtenez MethodInfo pour énumérable.DefaulfEmpty
-
28-10-2019 - |
Question
Je construis une expression de Linq et j'essaie de me procurer Methodinfo pour IEnumerable.DefaultIfEmpty
(http://msdn.microsoft.com/en-us/library/bb360179.aspx). Ce qui semblait être une tâche facile, mais je ne sais pas pourquoi cela ne fonctionne pas.
typeof(Enumerable).GetMethod("DefaultIfEmpty", new[] { typeof(IEnumerable<>) });
typeof(Enumerable).GetMethod("DefaultIfEmpty", new[] { typeof(IEnumerable<>).MakeGenericType(typeof(WorkitemListModel)) });
La solution
Obtenir des méthodes génériques est une douleur, pour être honnête. Je ne connais pas une meilleure façon que d'utiliser:
var method = typeof(Enumerable).GetMethods()
.Where(m => m.Name == "DefaultIfEmpty")
.Where(m => m.GetParameters().Length == 1)
.Single();
Appeler GetMethod
, vous devrez avoir le type de paramètre correct exact, y compris le paramètre de type générique droit pour le paramètre. Une fois que tu as ça une fois que Vous pouvez le faire, mais jusque-là, je pense que ce qui précède est tout ce qui est disponible :(
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow