DEV Community

Cover image for ASP.NET Core Service Lifetimes (Infographic)
EzzyLearning.net
EzzyLearning.net

Posted on • Originally published at ezzylearning.net

ASP.NET Core Service Lifetimes (Infographic)

ASP.NET Core supports the dependency injection (DI) software design pattern that allows us to register services and control how these services will be instantiated and injected in different components. Some services will be instantiated for a short time and will be available only in a particular component and request. Some will be instantiated just once and will be available throughout the application. Here are the service lifetimes available in ASP.NET Core.

Singleton

A single instance of the service class is created, stored in memory and reused throughout the application. We can use Singleton for services that are expensive to instantiate. We can register Singleton service using the AddSingleton method as follows:

services.AddSingleton<IProductService, ProductService>();
Enter fullscreen mode Exit fullscreen mode

Scoped

The service instance will be created once per request. All middlewares, MVC controllers, etc. that participate in handling of a single request will get the same instance. A good candidate for a scoped service is an Entity Framework context. We can register Scoped service using the AddScoped method as follows:

services.AddScoped<IProductService, ProductService>();
Enter fullscreen mode Exit fullscreen mode

Transient

Transient lifetime services are created each time they're requested. This lifetime works best for lightweight, stateless services. We can register Transient service using the AddTransient method as follows:

services.AddTransient<IProductService, ProductService>();
Enter fullscreen mode Exit fullscreen mode

If you want to visualize the above concepts then here is an infographic for your quick reference.

ASP.NET Core Service Lifetimes Infographic

Image of Timescale

🚀 pgai Vectorizer: SQLAlchemy and LiteLLM Make Vector Search Simple

We built pgai Vectorizer to simplify embedding management for AI applications—without needing a separate database or complex infrastructure. Since launch, developers have created over 3,000 vectorizers on Timescale Cloud, with many more self-hosted.

Read more →

Top comments (0)

A Workflow Copilot. Tailored to You.

Pieces.app image

Our desktop app, with its intelligent copilot, streamlines coding by generating snippets, extracting code from screenshots, and accelerating problem-solving.

Read the docs