サービスとは何ですか? ASP.NET Core にサービスを追加する理由は何ですか?

ASP.NET Core は、依存関係の挿入を基本的な機能として使用して、フレームワーク全体の依存関係を管理します。依存性注入フレームワークが方法を知るために 依存関係を解決するには、これらの依存関係または 「サービス」 最初に構成する必要があります。

Program.cs で Web ホストを作成すると、ASP.NET Core は非常にコアなサービスに対して既にこれを行います。 ただし、Web アプリケーションでより多くの機能を有効にすると、アプリケーションに追加のサービスを追加して、機能をオプトインする必要があります。

例えば ​​services.AddMvc() アプリケーションで MVC 機能とミドルウェアを有効にするために必要なサービスを追加します。または services.AddAuthentication() アプリケーションで認証を有効にするために必要なサービスを追加します。

これらの機能はオプトイン ベースであり、デフォルトでは有効になっていないため、アプリケーションの作成者はこれを制御する方法が必要です。それが ConfigureServices の理由です メソッドがあります:ここで、機能を有効にするサービスを追加できます。

さらに、これを使用して独自のサービスを追加することもできます アプリケーション内でも依存性注入を利用できるようにします。たとえば、コントローラー内で独自のサービスを解決します。

依存性注入は実際にはかなり複雑なトピックなので、依存性注入に関するドキュメントを参照して、依存性注入がどのように機能し、何ができるかを確認することをお勧めします.


ConfigureServices には、IServiceCollection 型のパラメーターが 1 つあります。 IServiceCollection、これは DI (依存性注入) コンテナーです。このコンテナーにサービスを追加すると、依存関係の挿入に使用できるようになります。つまり、これらのサービスをアプリケーションのどこにでも挿入できます。 ConfigureServices は主に DI 用であり、プロジェクトに含まれるさまざまなライブラリ セットアップをセットアップします。