Я использую библиотеки классов .NET Standard (2.1) и .NET Core 3.0 в качестве веб-API, поэтому библиотека Microsoft.Extensions.DependencyInjection
, хотя я подозреваю, что это не имеет большого значения.
ОбщееПрактика говорит, что мой корень композиции (проект API) должен координировать все необходимые реализации для интерфейсов приложения.
Как мне справиться с этим, когда у меня есть интерфейсы, неизвестные проекту Web API, для которого я хочу настроить внедрениеfor?
Например, стек зависимостей типа CQRS:
MyProject.Web.API, depends on:
MyProject.MyService, which depends on:
MyProject.MyService.Command
MyProject.MyService.Command.Data
MyProject.MyService.Query
MyProject.MyService.Query.Data
MyProject.Web.API не знает, что существуют проекты данных, но каждый из этих проектов данных имеет ICommandDbContext
или IQueryDbContext
там, где я хочу обработать.
Я не могу установить их в корне композиции, не раскрывая интерфейсы более низкого уровня вплоть до проекта Web API, который совершенно не нужен длялюбая другая причина. Как я могу справиться с DI в этих проектах более низкого уровня?