У меня есть две службы в моем приложении:
ServiceA : IService
ServiceB : IService
Я хочу передать Type
информацию об услуге, которая мне нужна (ServiceA
или ServiceB
), во второй класс.
Затем я хочу захватить эту службу во втором классе.
IEnumerable<IService> services // i get it from DI by constructor, length = 2
// becuase i have two implementations of it
services.FirstOrDefault(x => ... and how to grab for example ServiceA?)
Так что же я должен передать своему второму классу, чтобы получить реализацию IService
of ask Type
? Эти сервисы существуют в одной сборке, и я передаю список этих сервисов. NET Core DI Container.
Сервисы и все классы существуют в одном проекте, но в разных пространствах имен (но имеют ссылку)
РЕДАКТИРОВАТЬ:
Извините, что не уточнил это, мне нужно передать информацию об объекте string
, потому что я посылаю JSON
к нему. Поэтому мне нужно получить некоторую информацию о Service
в виде строки, а затем десериализовать ее во втором классе и на основе строки найти соответствующий сервис из services
списка
EDIT2:
Пример, что я хочу сделать:
// logic, i know i need ServiceA, pseudocode:
return ServiceB.GetType().ToString();
// then, serialize it to json:
string json = object.Serialize(); // object where i have property for example : "service": "ServiceB"
// second class
public Task Handler(Object input)
{
// deserialize input;
// and grab service
var service = services.FirstOrDefault(x => x .....);
}