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.