1
resposta

[solução] tipo retornando null

Imagine que a biblioteca System.Reflection fosse case insensitive mas parece que não é. No código

var classe = Convert.ToString(context.GetRouteValue("classe"));
 var nomeCompleto = $"Alura.ListaLeitura.App.Logica.{classe}Logica";

retorna Alura.ListaLeitura.App.Logica.livrosLogica, por exemplo. E quando executamos

var tipo = Type.GetType(nomeCompleto);

a variável tipo fica com valor null. Consegui rodar fazendo o seguinte

var correct = classe.First().ToString().ToUpper() + strClasse.Substring(1);
 var nomeCompleto = $"Alura.ListaLeitura.App.Logica.{correct}Logica";

E consegui que a variável tipo ficasse com o valor Alura.ListaLeitura.App.Logica.LivrosLogica. O mesmo vale para o método que, nesse caso, forcei ser em letras minúsculas para a comparação funcionar e achar o método

var strMetodo = Convert.ToString(context.GetRouteValue("metodo"));
 var metodo = tipo.GetMethods().Where(m => m.Name.ToLower() == strMetodo).First();

Espero que isso possa ajudar quem tiver o problema. A solução pode ser dita nos outros vídeos da aula mas ainda não cheguei neles.

1 resposta

Olá Leonardo, como vai?

Muito estranho o método não ter funcionado. Baixei o ultimo projeto, e fiz as modificações dessa aula e por aqui foi liso.

De qualquer maneira, seu tópico irá ajudar outros alunos que enfrentarem esse mesmo imprevisto.

Obrigada por ter compartilhado sua resolução, é algo a ser exaltado.

Um forte abraço e bons estudos!