Sobes.tech
Junior — Middle

How do the lifecycles of objects differ in Dependency Injection for transient, scoped, and singleton modes?

sobes.tech AI

Answer from AI

In Dependency Injection (DI) in C#, the lifecycle of an object is determined by its registration mode:

  • Transient: a new instance is created each time the object is requested. Used for lightweight, stateless services.

  • Scoped: the object is created once per scope, typically per HTTP request in web applications. All dependencies within this request share the same instance.

  • Singleton: the object is created once upon the first request and lives for the duration of the application. All requests share the same instance.

Example registration in ASP.NET Core:

services.AddTransient<IService, Service>(); // new object each time
services.AddScoped<IService, Service>();   // one object per request
services.AddSingleton<IService, Service>(); // one object for the entire lifetime

Thus, the choice of mode depends on how long the object should live and how it is used.

How do the lifecycles of objects differ in Dependency… - sobes.tech