Нужны рекомендации для реализации шаблона для внедрения «процессоров» в NuGet из WebApp - PullRequest
0 голосов
/ 23 апреля 2019

В настоящее время мы разрабатываем внутренний пакет NuGet, который отправит HTTP-запрос другому микросервису.

Вот пример реализации, которую я ищу.

  • [Пакет NuGet] имеет промежуточное ПО, которое зарегистрировано при запуске [WebApp]

  • [Пакет NuGet] отвечает за создание HTTP-запроса и отправку его в микросервис

  • [WebApp] должен иметь возможность создавать свой собственный IP-процессор, который должен реализовывать Process () и добавлять любые связанные данные, которые ему подходят

  • [WebApp] должен {сделать что-то}, чтобы "зарегистрировать" свой IProcessor

  • [пакет NuGet] вызовет список зарегистрированных IP-процессоров перед отправкой запроса в микросервис

Каков наилучший способ добиться этого (особенно два последних элемента) в ядре .NET, с учетом инкапсуляции Nuget.

Спасибо:)

1 Ответ

2 голосов
/ 23 апреля 2019

Во-первых, я думаю, что это даст некоторую ясность, чтобы понять, что это всего лишь "WebApp". Используете ли вы один, много или нет пакетов NuGet, ссылки на проекты и т. Д., В конечном счете, все это просто код, который выполняется в вашем процессе WebApp.

Таким образом, вы можете зарегистрировать реализацию IProcessor, как если бы вы зарегистрировали любую услугу:

services.AddScoped<IProcessor, WebAppProcessor>();

Неясно, что вы в конечном итоге делаете здесь, поэтому в зависимости от этого вы можете выбрать один из двух путей. Если есть только одна IProcessor реализация, то вы просто внедряете это непосредственно в любой класс, который нуждается в этом, через конструктор класса. Этот класс также необходимо зарегистрировать в коллекции служб веб-приложения, чтобы он вообще участвовал в процессе внедрения зависимостей.

Если на самом деле у вас будет несколько доступных реализаций, тогда процесс в основном одинаков, но вместо этого вам нужно будет ввести IEnumerable<IProcessor>. Коллекция сервисов затем внедрит все зарегистрированные реализации IProcessor.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...