(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; }