Given the code:

4 phương ánCó giải thíchDễ
Đề bài
builder.Services.AddScoped<IOrderService, OrderService>();

How will OrderService behave?

Các phương án trả lời

Chọn một phương án
Lời giảiChọn phương án để mở
Đáp án đúng: "New instance for each HTTP request". AddScoped tạo một thể hiện cho mỗi scope, và ASP.NET Core mở một scope cho từng request HTTP, nên mọi chỗ tiêm IOrderService trong cùng request (controller, dịch vụ khác) dùng chung một OrderService, request sau nhận thể hiện mới và thể hiện cũ được Dispose khi request kết thúc. "Same instance for the entire application" sai vì đó là vòng đời Singleton đăng ký bằng AddSingleton. "New instance every time injected" sai vì đó là Transient đăng ký bằng AddTransient. "Thread-local instance" sai vì DI của .NET không có vòng đời gắn với luồng, một request bất đồng bộ có thể chuyển qua nhiều luồng giữa các lần await mà vẫn nằm trong cùng một scope.

Cùng chương 3

Xuất hiện trong 2 bộ đề