(ASP.NET,C#)DI(Dependency Injection)する

Javaの Spring Boot の場合にDIするには @Autowired アノテーションを使ったが、
ASP.NETではコンポーネントの登録ソースをゴリっと書く。

DI登録

// Startup.cs

public void ConfigureServices(IServiceCollection services)
{
    services.AddControllersWithViews();
    
    // 社員マスタ画面サービス
    services.AddScoped<IEmployeeMstService, EmployeeMstService>();

DBコネクションも登録する(できる)

// Startup.cs

public void ConfigureServices(IServiceCollection services)
{
    services.AddControllersWithViews();

    // DBコネクション
    services.AddScoped<IDbConnection>(
        provider => new SqlConnection(
            Configuration.GetConnectionString("SQLServerConnection")));

注入する

どうやらコンポーネントを受け取る側のコンストラクタで受け取るようだ。

// EmployeeMstController

public EmployeeMstController(IEmployeeMstService service)
{
    this._service = service;
}
// IEmployeeMstService
public interface IEmployeeMstService
{

// EmployeeMstService
public class EmployeeMstService : IEmployeeMstService
    public EmployeeMstService(IDbConnection connection)
    {
        this._connection = connection;
    }