Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Uso no método Invoke

Boa tarde,

Gostaria de entender melhor como o método Invoke do delegate "metodo" sabe que deve ser chamado o método WriteAsync() dentro de context.Response, conforme codigo abaixo, retirado da atividade 3?

var metodo = caminhosAtendidos[context.Request.Path];
return metodo.Invoke(context);
2 respostas
solução!

Depois de revisar o código, vi que na verdade o WriteAsync() chamado está dentro dos métodos criados externamente que estão assinados como um RequestDelegate.

Fala, Rodrigo, tudo bem?

Um delegate funciona como um grupo de métodos que possuem a mesma assinatura. Ou seja: o mesmo número e tipo dos argumentos de entrada e a mesma saída. Com isso uma variável desse tipo serve para guardar a referência para qualquer método que se adeque a essa assinatura. Quando quisermos chamar o método guardado na variável, basta usar o Invoke().

No nosso caso usamos o tipo RequestDelegate que injeta como argumento de entrada um objeto do tipo HttpContext e esse objeto tem um Response com o método WriteAsync().

Sacou?