// Singleton - Một instance duy nhất cho toàn bộ lifetime của app
builder.Services.AddSingleton<IService, Service>();
// Scoped - Một instance per request
builder.Services.AddScoped<IService, Service>();
// Transient - Instance mới mỗi lần được yêu cầu
builder.Services.AddTransient<IService, Service>();
var app = builder.Build();
// Run - Kết thúc pipeline (không gọi next)
app.Run(async context =>
{
await context.Response.WriteAsync("Hello");
});
// Use - Có thể gọi next middleware
app.Use(async (context, next) =>
{
// Do something before
await next();
// Do something after
});
// Map - Route-based middleware
app.Map("/api", appBuilder =>
{
appBuilder.UseRouting();
});