ホームページ  >  記事  >  バックエンド開発  >  サービスの依存関係をコントローラー C# Asp.net Core に注入するにはどうすればよいですか?

サービスの依存関係をコントローラー C# Asp.net Core に注入するにはどうすればよいですか?

WBOY
WBOY転載
2023-09-10 12:49:021211ブラウズ

我们如何将服务依赖注入到控制器C# Asp.net Core中?

ASP.NET Core は、コンストラクターまたはメソッドを通じて依存クラスのオブジェクトを挿入します。 組み込みの IoC コンテナを使用します。

組み込みコンテナーは IServiceProvider 実装によって表されます コンストラクターのインジェクションはデフォルトでサポートされています。組み込みIoCで管理される型(クラス) コンテナはサービスと呼ばれます。

IoC コンテナがアプリケーション サービスを自動的に挿入するには、まず次のことを行います。 これらは IoC コンテナに登録する必要があります。

Example

public interface ILog{
   void info(string str);
}
class MyConsoleLogger : ILog{
   public void info(string str){
      Console.WriteLine(str);
   }
}

ASP.NET Core を使用すると、アプリケーション サービスを IoC コンテナーに登録できます。 Startup クラスの ConfigureServices メソッド内。サービスメソッドを構成する アプリケーションを登録するための IServiceCollection 型のパラメーターが含まれます services

次に示すように、ConfigureServices() メソッドの IoC コンテナに ILog を登録します。

public class Startup{
   public void ConfigureServices(IServiceCollection services){
      services.AddSingleton<ILog, MyConsoleLogger>();
   }
}

IServiceCollection インスタンスの Add() メソッドは、IoC にサービスを登録するために使用されます。 コンテナ

サービス タイプとして ILog を指定し、そのインスタンスとして MyConsoleLogger を指定しました。 これにより、ILog サービスがシングルトンとして登録されます これで、IoC コンテナは MyConsoleLogger クラスのシングルトン オブジェクトを作成し、 ILog をクラスのコンストラクターにコンストラクターとして含めるか、クラスのコンストラクターに注入するか。 アプリケーション全体のメソッドパラメータ。

以上がサービスの依存関係をコントローラー C# Asp.net Core に注入するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はtutorialspoint.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。