Câu hỏi phỏng vấn Net core
Câu hỏi

Khi nào sử dụng các vòng đời dịch vụ DI Transient, Scoped và Singleton?

Câu trả lời

Trong lập trình ASP.NET Core, việc quản lý vòng đời của các dịch vụ thông qua Dependency Injection (DI) là một phần quan trọng để đảm bảo hiệu suất và quản lý tài nguyên hiệu quả. Có ba loại vòng đời dịch vụ chính: Transient, Scoped và Singleton, mỗi loại phục vụ cho một mục đích cụ thể.

  • Transient: Các dịch vụ Transient được tạo mới mỗi lần chúng được yêu cầu. Điều này có nghĩa là mỗi lần một dịch vụ Transient được inject vào một lớp, một thể hiện mới của dịch vụ đó sẽ được tạo ra. Loại vòng đời này thích hợp cho các dịch vụ nhẹ, không giữ trạng thái hoặc các dịch vụ được sử dụng trong một phạm vi hẹp và không cần tái sử dụng[1][2][3].

  • Scoped: Các dịch vụ Scoped được tạo một lần cho mỗi yêu cầu (request) đến ứng dụng. Nói cách khác, trong suốt vòng đời của một yêu cầu HTTP, một thể hiện duy nhất của dịch vụ Scoped sẽ được sử dụng, giúp chia sẻ trạng thái trong phạm vi của một yêu cầu. Loại vòng đời này thích hợp cho các dịch vụ cần duy trì trạng thái thông qua một yêu cầu hoặc cần truy cập đến các tài nguyên yêu cầu phạm vi, như làm việc với dữ liệu yêu cầu cụ thể[1][2][3].

  • Singleton: Các dịch vụ Singleton được tạo một lần và tồn tại trong suốt vòng đời của ứng dụng. Thể hiện duy nhất này sẽ được tái sử dụng mỗi khi dịch vụ được yêu cầu. Loại vòng đời này thích hợp cho các dịch vụ cần duy trì trạng thái hoặc cấu hình chung cho toàn bộ ứng dụng, hoặc khi dịch vụ đó đắt đỏ về mặt tài nguyên và cần được tái sử dụng, như các dịch vụ cấu hình, logging hoặc caching[1][2][3].

Lựa chọn vòng đời dịch vụ phù...

senior

senior

Gợi ý câu hỏi phỏng vấn

middle

CTS trong .Net là gì?

junior

Sự khác biệt giữa Stringstring trong C# là gì?

senior

Làm thế nào để chọn phiên bản mục tiêu của thư viện .NET Standard?

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào