У меня есть основной ASP.NET Core Web Api проект, который использует несколько проектов, но я следую Чистой Архитектуре, все интерфейсы помещены в основной проект, есть модульные проекты (инфраструктура), определяющие реализацию. Основной проект просто ссылается на основной проект, не зная об инфраструктуре.
Это означает, что нам нужно сканировать модули на наличие зависимостей и автоматически связывать реализацию с соответствующими интерфейсами, определенными в базовом проекте.
Более конкретно, предположим, что у меня есть интерфейс IA (в базовом проекте) и реализация A (в инфраструктуре), традиционно, если основной проект ссылается на оба, мы можем просто вручную зарегистрировать зависимость следующим образом:
public void ConfigureServices(IServiceCollection services){
services.AddTransient<IA, A>();
}
Однако с чистой архитектурой у нас просто есть IA
, доступный во время разработки, как мы можем отсканировать и связать реализацию A
в этом случае?
Если это невозможно с интегрированным внедрением зависимостей в ASP.NET Core, не могли бы вы показать мне какое-нибудь альтернативное решение (например, Autofac
). Тем не менее, самая сложная часть здесь - это не регистрация вручную, а автоматическое подключение (сканирование). Спасибо.