1
resposta

AddScoped vs AddTransient

Antes eu já utilizava o service para organizar o código, mas até então eu adiciona o serviço no AddTransient.

services.AddTransient();

Qual a diferença do AddTransient para AddScoped ? Qual devo utilizar ?

Eu li na internet a respeito, mas ainda não ficou claro.

1 resposta

Olá Maycon

A diferença entre o método AddTransient e o AddScoped está relacionada ao tempo de vida dos objetos criados pelo serviço.

O método AddTransient cria uma nova instância do serviço a cada vez que é solicitado. Isso significa que cada vez que você injetar o serviço em uma classe, uma nova instância será criada. Essa abordagem é útil quando você precisa de uma nova instância do serviço a cada vez, por exemplo, quando o serviço possui um estado que precisa ser reiniciado a cada solicitação.

Já o método AddScoped cria uma única instância do serviço por solicitação HTTP. Isso significa que, durante uma única solicitação HTTP, todas as classes que injetarem o serviço receberão a mesma instância. No entanto, em solicitações HTTP diferentes, uma nova instância será criada. Essa abordagem é útil quando você precisa compartilhar o mesmo estado do serviço entre várias classes durante uma solicitação HTTP, mas deseja que cada solicitação tenha seu próprio estado separado.

Para decidir qual método utilizar, você precisa considerar o contexto em que o serviço será utilizado. Se você precisa de uma nova instância a cada solicitação, utilize o AddTransient. Se você precisa compartilhar o mesmo estado durante uma solicitação HTTP, utilize o AddScoped.

Espero ter ajudado e bons estudos!