Есть ли способ получить C# Multi-Bound Services (ServiceProvider.getServices <T>), но каждый экземпляр в своем собственнC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Есть ли способ получить C# Multi-Bound Services (ServiceProvider.getServices <T>), но каждый экземпляр в своем собственн

Сообщение Anonymous »

У меня есть некоторые услуги, которые являются многоквартирными, как это: < /p>

Код: Выделить всё

abstract class BaseProductService(MyDbContext db) { /* Work with the DbContext */ }
class ComputerProductService : BaseProductService {}
class CarProductService : BaseProductService {}

// Binding:
services
.AddScoped()
.AddScoped()
.AddHostedService
();
Теперь продукт Productworker - это фоновая задача, которая должна захватить все (еще не известные) зарегистрированные базовые

Код: Выделить всё

using var scope = services.CreateScope();
var products = scope.ServiceProvider.GetServices();

// Call each product.InitAsync() in parallel
Проблема заключается в том, что с MyDbContext , зарегистрированным для общего числа, каждый экземпляр BaseProDuctService использует один и тот же MyDBContext , и он не позволяет работать параллельно. Ienumerable Так что каждый экземпляр находится в своем собственном объеме? Любой недостаток, о котором я должен знать? Таким образом, я могу создать одну область для каждой службы и дать им этот экземпляр DBContext.


Подробнее здесь: https://stackoverflow.com/questions/795 ... etservices
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»