Dependency Injection (DI) ถูกผนวกเข้ามาใน .NET สมัยใหม่ — เฟรมเวิร์กมี DI container ที่สร้าง class โดยอัตโนมัติและ inject dependency ของมัน คุณลงทะเบียน service (จับคู่ interface กับ implementation) แล้ว container จะ resolve มัน ทำให้เกิดโค้ดที่ผูกพันกันหลวม (loosely-coupled) และทดสอบได้ มันเป็นรากฐานของ ASP.NET Core
การลงทะเบียน service
// in Program.cs — register services with a LIFETIME
builder.Services.AddScoped<IUserRepository, UserRepository>();
builder.Services.AddSingleton<ICacheService, CacheService>();
builder.Services.AddTransient<IEmailSender, EmailSender>();
