ASP .( Net Core Service Lifetime )


ASP .NETコアは、サービスを登録し、これらのサービスがどのようにインスタンス化され、異なるコンポーネントで注入されるかを制御することができます.いくつかのサービスは、短い時間のためにインスタンス化されて、特定のコンポーネントと要求だけで利用できるでしょう.一部は一度だけインスタンス化され、アプリケーション全体で利用できるようになります.ここでは、ASP . NETで利用可能なサービスのライフタイムです.ネットコア.

シングルトン


サービスクラスの単一のインスタンスが作成され、メモリに格納され、アプリケーション全体で再利用されます.私たちは、singleateに高価であるサービスのためにsingletonを使用することができます.次のようにAddsingletonメソッドを使用してSingletonサービスを登録できます.
services.AddSingleton<IProductService, ProductService>();

スコープ


サービスインスタンスはリクエストごとに1回作成されます.単一のリクエストの処理に参加するすべてのミドルウェア、MVCコントローラなどは同じインスタンスを取得します.スコープ付きサービスの良い候補は、Entity Frameworkコンテクストです.addscopedメソッドを使用してスコープサービスを登録するには、次の手順に従います.
services.AddScoped<IProductService, ProductService>();

過渡


過渡寿命サービスは、要求されるたびに作成されます.この生涯は、ライト級、無用のサービスに最適です.AddTransactionメソッドを使用して一時的なサービスを登録できます.
services.AddTransient<IProductService, ProductService>();
あなたが上記の概念を視覚化するならば、あなたの速い参照のためのインフォグラフィックはここにあります.