Obtenha informações do método para Enumerable.DefaultIfEmpty
-
28-10-2019 - |
Pergunta
Estou construindo algumas expressões Linq e tentando obter o MethodInfo para IEnumerable.DefaultIfEmpty
(http://msdn.microsoft.com/en-us/library/bb360179.aspx).O que parecia ser uma tarefa fácil, mas não sei por que não está funcionando.
typeof(Enumerable).GetMethod("DefaultIfEmpty", new[] { typeof(IEnumerable<>) });
typeof(Enumerable).GetMethod("DefaultIfEmpty", new[] { typeof(IEnumerable<>).MakeGenericType(typeof(WorkitemListModel)) });
Solução
Obter métodos genéricos é uma dor, para ser honesto.Não conheço maneira melhor do que usar:
var method = typeof(Enumerable).GetMethods()
.Where(m => m.Name == "DefaultIfEmpty")
.Where(m => m.GetParameters().Length == 1)
.Single();
Chamar GetMethod
, você precisaria ter o tipo de parâmetro exato e correto, incluindo o parâmetro de tipo genérico correto para o parâmetro.Depois de conseguir isso uma vez você poderia fazer isso, mas até então acho que o acima é tudo o que está disponível :(
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow