Как создать синглтон, зависимый от значения, полученного другим услугой, посредством инъекции зависимости в .net 8.0?C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Как создать синглтон, зависимый от значения, полученного другим услугой, посредством инъекции зависимости в .net 8.0?

Сообщение Anonymous »

Я добавляю новый Singleton (Service B) в свой проект .NET, который зависит от значения, полученного от другой услуги. Синглтон может быть одним из двух экземпляров класса в зависимости от значения, возвращаемого Servicea. < /P>
serviceList
.AddSingleton()
.AddSingleton()

...

builder.Build()
< /code>
Как упоминалось ранее, в зависимости от значения от Servicea, ServiceB может быть ServiceBimpl1 или ServiceBimpl2. Регистрация обеих сервисов кажется ненужной. < /P>
Я подумал, что смогу использовать функцию лямбды, чтобы справиться с этим, но кажется, что она не может найти зависимую службу правильно: < /p>
.AddSingleton(serviceList => {
var serviceA = serviceList.GetRequiredService();
var someResponseFromA = serviceA.doSomething();
if (someResponseFromA == 1)
{
return new ServiceBImpl1();
}
else
{
return new ServiceBImpl2();
}
})

< /code>
dosomething в этом случае всегда возвращает нулевое значение и жалуется на то, что Serviceaimpl недоступен (для контекста, что -то является блокирующим вызовом). Как бы я получил значения, которые я хочу от ServiceaImpl, для надлежащего регистрации ServiceB?

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

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

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

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

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

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

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