Как найти реализацию услуги по типу?C#

Место общения программистов C#
Anonymous
Как найти реализацию услуги по типу?

Сообщение Anonymous »

В моем приложении есть две службы:

ServiceA : IService
ServiceB : IService


Я хочу передать тип информации о службе, которая мне нужна (ServiceA или ServiceB) во второй класс.

Затем я хочу получить эту услугу из этого второго класса.

IEnumerable 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 заданного типа? Эти службы существуют в одной сборке, и я передаю список этих служб с помощью контейнера .NET Core DI.

Сервисы и все классы существуют в одном проекте, но в разных пространствах имен (но они есть ссылка)

РЕДАКТИРОВАТЬ:

Извините, что не разъяснил это, мне нужно передать информацию об объекте по строке , потому что я отправляю на него JSON. Поэтому мне нужно получить некоторую информацию о Сервисе в виде строки, затем десериализовать ее во втором классе и на основе строки найти подходящий сервис из списка сервисов

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 .....);
}


Подробнее здесь: https://stackoverflow.com/questions/612 ... ce-by-type

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