Модули не должны зависеть от другого модуля, это может зависеть только от контрактов.Некоторый пример.У вас есть модуль A
с внутренним интерфейсом IModuleAService
и класс, который его реализует, ModuleAService
.Модуль B
требует для его обслуживания ModuleBSerice
реализацию IModuleAService
.Поэтому создайте отдельные сборки:
ModuleA.Abstractions
: содержит IModuleAService
и другие контракты ModuleA
: зависит от ModuleA.Abstraction
, содержит класс ModuleAService
, который реализует IModuleAService
ModuleB
: зависит от ModuleA.Abstraction
.
А на стартапе вам нужно зарегистрировать все модули.IoC сделает все работы для вас.Если позже вы захотите разделить приложение на две части, это будет легко.Если вам нужно внедрить прокси для доступа ModuleA
.