Làm thế nào bạn có thể tạo Scope riêng cho một đối tượng Scoped trong .NET?
Làm thế nào bạn có thể tạo Scope riêng cho một đối tượng Scoped trong .NET?
Trong .NET, việc tạo một scope riêng cho một đối tượng scoped có thể được thực hiện thông qua việc sử dụng IServiceProvider
và IServiceScopeFactory
để tạo một scope mới. Điều này đặc biệt hữu ích trong các tình huống mà ứng dụng của bạn không nhận yêu cầu HTTP thông qua controller mà thay vào đó, nó lắng nghe và nhận tin nhắn (ví dụ, sử dụng giao thức AMQP) để khởi tạo luồng logic của mình
Bạn cần tạo một scope mới mỗi khi nhận được một tin nhắn. Điều này đảm bảo rằng mỗi tin nhắn được xử lý trong một môi trường riêng biệt, tương tự như cách một yêu cầu HTTP mới tạo một scope mới trong một ứng dụng web truyền thống.
IServiceScopeFactory
IServiceScopeFactory
cho phép bạn tạo một scope mới. Bạn có thể tiêm IServiceScopeFactory
vào lớp của mình và sử dụng nó để tạo một scope mới mỗi khi cần
public class Listener
{
private readonly IServiceScopeFactory _scopeFactory;
public Listener(IServiceScopeFactory scopeFactory)
{
_scopeFactory = scopeFactory;
}
...
middle
Gợi ý câu hỏi phỏng vấn
Chưa có bình luận nào