ASP .( Net Core Service Lifetime )
1266 ワード
ASP .NETコアは、サービスを登録し、これらのサービスがどのようにインスタンス化され、異なるコンポーネントで注入されるかを制御することができます.いくつかのサービスは、短い時間のためにインスタンス化されて、特定のコンポーネントと要求だけで利用できるでしょう.一部は一度だけインスタンス化され、アプリケーション全体で利用できるようになります.ここでは、ASP . NETで利用可能なサービスのライフタイムです.ネットコア.
サービスクラスの単一のインスタンスが作成され、メモリに格納され、アプリケーション全体で再利用されます.私たちは、singleateに高価であるサービスのためにsingletonを使用することができます.次のようにAddsingletonメソッドを使用してSingletonサービスを登録できます.
サービスインスタンスはリクエストごとに1回作成されます.単一のリクエストの処理に参加するすべてのミドルウェア、MVCコントローラなどは同じインスタンスを取得します.スコープ付きサービスの良い候補は、Entity Frameworkコンテクストです.addscopedメソッドを使用してスコープサービスを登録するには、次の手順に従います.
過渡寿命サービスは、要求されるたびに作成されます.この生涯は、ライト級、無用のサービスに最適です.AddTransactionメソッドを使用して一時的なサービスを登録できます.
シングルトン
サービスクラスの単一のインスタンスが作成され、メモリに格納され、アプリケーション全体で再利用されます.私たちは、singleateに高価であるサービスのためにsingletonを使用することができます.次のようにAddsingletonメソッドを使用してSingletonサービスを登録できます.
services.AddSingleton<IProductService, ProductService>();
スコープ
サービスインスタンスはリクエストごとに1回作成されます.単一のリクエストの処理に参加するすべてのミドルウェア、MVCコントローラなどは同じインスタンスを取得します.スコープ付きサービスの良い候補は、Entity Frameworkコンテクストです.addscopedメソッドを使用してスコープサービスを登録するには、次の手順に従います.
services.AddScoped<IProductService, ProductService>();
過渡
過渡寿命サービスは、要求されるたびに作成されます.この生涯は、ライト級、無用のサービスに最適です.AddTransactionメソッドを使用して一時的なサービスを登録できます.
services.AddTransient<IProductService, ProductService>();
あなたが上記の概念を視覚化するならば、あなたの速い参照のためのインフォグラフィックはここにあります.Reference
この問題について(ASP .( Net Core Service Lifetime )), 我々は、より多くの情報をここで見つけました https://dev.to/ezzylearning/asp-net-core-service-lifetimes-infographic-2cdhテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol