Consider this C# code:

4 phương ánCó giải thíchDễ
Đề bài
services.AddTransient<IEmailService, SmtpEmailService>();

What happens when IEmailService is requested multiple times?

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: "A new instance is created each time it’s requested". AddTransient đăng ký vòng đời Transient: mỗi lần container được yêu cầu IEmailService, dù qua tham số hàm khởi tạo hay qua GetService, nó tạo một SmtpEmailService mới, kể cả hai lần yêu cầu trong cùng một request. "Only one instance is ever created" sai vì đó là hành vi của Singleton đăng ký bằng AddSingleton. "One instance per request is created" sai vì đó là Scoped đăng ký bằng AddScoped, mỗi scope một thể hiện và trong ứng dụng web mỗi request HTTP là một scope. "The DI container throws an exception" sai vì lời đăng ký hoàn toàn hợp lệ, container chỉ báo lỗi khi SmtpEmailService cần một phụ thuộc chưa được đăng ký hoặc khi Singleton bắt giữ dịch vụ Scoped.

Cùng chương 3

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