**依存性注入(DI)**は最新の .NET に組み込まれています — このフレームワークには DI コンテナが含まれており、クラスを自動的に構築し、その依存関係を注入します。サービスを登録(インターフェースを実装にマッピング)すると、コンテナはそれらを解決し、疎結合でテスト可能なコードを実現します。ASP.NET Core の基礎となっています。
サービスの登録
// in Program.cs — register services with a LIFETIME
builder.Services.AddScoped<IUserRepository, UserRepository>(); // interface → implementation
builder.Services.AddSingleton<ICacheService, CacheService>();
builder.Services.AddTransient<IEmailSender, EmailSender>();
それぞれのサービスマッピングを、して登録します。ライフタイムを指定して登録すると、そのインターフェースに依存するすべてのものが、登録された実装を受け取ります。
