ASP.NET Core 簡単なDIを実装する

ASP.NET Core 簡単なDIを実装する

ASP.NET Coreで、簡単なDIを実装するまでの手順を記述してます。

環境

  • OS windows10 pro 64bit
  • VSCODE 1.56.2
  • .NET Core 3.1.409

Services作成

DIするインターフェイスをまずは作成します。
Servicesフォルダを作成して、以下の内容で「ITestService.cs」を作成します。

同様にインターフェイスを実装した「Services」配下に「TestService.cs」を作成します。

Startup.cs編集

Startup.csの、DIの設定を行うConfigureServicesに以下を追加します。
※ここでは「DIされたら停止時まで、インスタンスが利用される(services.AddSingleton)」を使用してます。

Controller編集

適当なControllerに以下を追加して利用します。

後は、以下のように適当なメソッド内で利用すれば、httpリクエストごとにHelloが実行され、カウントが増えていくと思います。

servicesを、AddSingletonではなく
「DIごとにインスタンスが生成される」AddTransientか、
「httpリクエストごとにインスタンスが生成される」AddScopedだと、
毎回インスタンスが生成されるので「i」の値は常に「1」となります。