Computer >> Máy Tính >  >> Lập trình >> C#

AddSingleton vs AddScoped vs Add Transient C # Asp.net Core là gì?

Có ba cách để đăng ký các phần phụ thuộc trong Startup.cs. tức làAddSingleton, AddScoped và AddTransient.

Thêm Singleton

Khi chúng tôi đăng ký một loại là singleton, chỉ một phiên bản có sẵn trong ứng dụng và cho mọi yêu cầu.

Nó tương tự như có một đối tượng tĩnh.

Phiên bản được tạo cho yêu cầu đầu tiên và phiên bản tương tự có sẵn trong suốt ứng dụng và cho mỗi yêu cầu tiếp theo.

public void ConfigureServices(IServiceCollection services){
   services.AddSingleton<ILog,Logger>()
}

Thêm phạm vi

Khi chúng tôi đăng ký một loại là Phạm vi, một phiên bản có sẵn trong ứng dụng cho mỗi yêu cầu. Khi một yêu cầu mới đến, phiên bản mới sẽ được tạo. Thêm phạm vi chỉ định rằng một đối tượng có sẵn theo yêu cầu.

public void ConfigureServices(IServiceCollection services){
   services.AddScoped<ILog,Logger>()
}

Thêm tạm thời

Khi chúng ta đăng ký một kiểu là Tạm thời, mỗi khi một thể hiện mới được tạo. Tạo ra phiên bản mới cho mọi dịch vụ / bộ điều khiển cũng như cho mọi yêu cầu và mọi người dùng.

public void ConfigureServices(IServiceCollection services){
   services.AddTransient<ILog,Logger>()
}


Tham số Thêm Singleton Thêm phạm vi Thêm tạm thời
Phiên bản Giống nhau từng yêu cầu / từng người dùng. Một cho mỗi yêu cầu. Thời gian giao hàng khác nhau.
Xử lý Ứng dụng tắt Kết thúc yêu cầu Kết thúc yêu cầu
Được sử dụng trong Khi yêu cầu thực hiện đơn. Các ứng dụng có hành vi khác nhau trên mỗi người dùng. Dịch vụ trọng lượng nhẹ và không có khung.