Sobes.tech
Junior — Middle

Consegue nomear outros tipos de ciclos de vida de objetos utilizados em contêineres IoC, além do singleton?

sobes.tech IA

Resposta da IA

Para além do ciclo de vida Singleton, os contêineres IoC frequentemente utilizam os seguintes tipos de ciclo de vida de objetos:

  • Transient (Transiente): cada pedido de objeto cria uma nova instância. Usado quando é necessário um objeto novo sem manter estado.
  • Scoped (Escopo): o objeto é criado uma vez por escopo definido, por exemplo, por uma requisição HTTP em aplicações web. Após o término do escopo, o objeto é destruído.
  • Per Thread (Por Thread): o objeto é criado uma vez por thread, útil para aplicações multithread.

Exemplo em C# usando Microsoft.Extensions.DependencyInjection:

services.AddSingleton<IMyService, MyService>(); // Singleton
services.AddTransient<IMyService, MyService>(); // Transiente
services.AddScoped<IMyService, MyService>();   // Escopo