Я пытаюсь понять, как лучше настроить разные сервисы для разных контроллеров, и могу использовать некоторую помощь, потому что чувствую, что моя реализация неверна. Насколько я понимаю, мы должны позволить файлу startup.cs поднять процесс создания сервисов.
Первоначально я использовал это для справки: https://www.strathweb.com/2017/04/running-multiple-independent-asp-net-core-pipelines-side-by-side-in-the-same-application/
Но, как лучше всего справиться со следующим:
public class ControllerService1 : Controller
{
private IService1 _service1;
public ControllerService1 (IService1 service1)
{
_service1= service1;
}
[HttpGet]
public SOME_TYPE Get()
{
return _service.MakeCall();
}
}
public class ControllerService2 : Controller
{
private IDifferentService _differentService;
public ControllerService2 (IDifferentService differentService)
{
_differentService= differentService;
}
[HttpGet]
public string Get()
{
return _differentService.DifferentMethod();
}
}
Здесь каждый контроллер имеет свой интерфейс, в который я хочу загрузить. Способен ли стартап маршрутизировать различные сервисы, которые совершенно другой тип интерфейса на разные контроллеры? Если так, то как? Я не уверен, как справиться с этим, и не смог увидеть документацию, описывающую, как это делается.
Точно так же, что если мой интерфейс _differentService создает вызов веб-службы при определенных условиях, используя интерфейс IMyWebServiceCall? Может быть, время суток определяет, сделаю ли я этот звонок. Этот API-интерфейс может включать в себя другой частный сервис, который является частью объекта DifferentService. Я хотел бы загрузить учетные данные вызова из appsetings. json, верно? Каков наилучший способ справиться с этим? Если этот объект создается и внедряется в _differentService через startup.cs и никогда не используется, это проблема памяти. Разве я не хочу, чтобы определенные интерфейсы / классы загружали этот объект только при необходимости? И если это так, мне нужно будет прочитать учетные данные из appsettings. json из другой библиотеки классов. Это возможно? Я не нашел элегантных способов чтения из файла, отличного от web.config, в. Net Core и мог бы воспользоваться советом. Или существует элегантный метод отложенной загрузки, который запускаемый файл startup.cs может внедрить, чтобы каким-либо образом внедрить IMyWebServiceCall в IDifferentService?