✅ ASP.NET Core: Confusion with builder.Services.AddTransient() and App Lifetime Management

I'm new to ASP.NET Core, and I'm encountering some confusion regarding service registration. In the code snippet below:
c#
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddTransient<RequestCultureMiddleware>();
var app = builder.Build();

We see that builder.Services.AddTransient<RequestCultureMiddleware>() is used to register the RequestCultureMiddleware service with a transient lifetime. However, I understand that the WebApplication.CreateBuilder(args) method builds the application configuration, while service registration is performed at the application level using app.

My question is: Why can't we register services like RequestCultureMiddleware directly with app.Services.AddTransient<RequestCultureMiddleware>() instead of using builder.Services? What's the underlying principle behind this separation?
Was this page helpful?