Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Dúvida] AddSingleton e AddScoped

Por que utilizamos o builder.Services.AddSingleton nesse caso de autorização? não poderiamos utilizar o AddScoped?

1 resposta
solução!

Oi Nicolas, tudo bem?

Então, a escolha entre AddSingleton, AddScoped e AddTransient depende muito do ciclo de vida que você deseja para o serviço que está sendo injetado.

Sobre o AddSingleton, ele cria uma instância única para toda a aplicação e a reutiliza. Isso significa que, uma vez que o serviço é criado, ele é compartilhado e reutilizado entre todas as solicitações e usuários da aplicação.

Já o AddScoped cria uma instância única para cada solicitação individual. Ou seja, a cada nova solicitação é criado um novo serviço.

No caso específico da classe IdadeAuthorization, ela foi registrada como AddSingleton provavelmente porque não há necessidade de criar uma nova instância a cada solicitação. A classe IdadeAuthorization não mantém estado entre as solicitações, ela apenas verifica a idade do usuário e retorna um resultado. Portanto, é seguro e mais eficiente reutilizar a mesma instância em todas as solicitações.

Se você usasse AddScoped para IdadeAuthorization, uma nova instância seria criada a cada solicitação, o que seria um desperdício de recursos, dado que a classe não mantém nenhum estado entre as solicitações.

Um abraço e bons estudos.