Sobes.tech
Junior — Middle

Como é determinado o período de existência de um objeto após a sua implementação através do mecanismo de Injeção de Dependências?

sobes.tech IA

Resposta da IA

A duração de vida de um objeto criado através de Dependency Injection (DI) é determinada pelo tempo de vida (lifetime), que é definido ao registar o serviço no contêiner DI. Em C# (por exemplo, no ASP.NET Core), existem três principais tipos de tempos de vida:

  • Transient — uma nova instância é criada a cada pedido de serviço.
  • Scoped — uma instância é criada por escopo (por exemplo, por pedido HTTP) e reutilizada dentro desse escopo.
  • Singleton — uma instância é criada na primeira solicitação e vive até ao fim da aplicação.

Exemplo de registo:

services.AddTransient<IMyService, MyService>();
services.AddScoped<IMyService, MyService>();
services.AddSingleton<IMyService, MyService>();

Assim, a duração de vida do objeto depende do tempo de vida escolhido ao registar no contêiner DI.