У меня есть проект .NET Core, который имеет следующие уровни в луковой архитектуре (от внутреннего до внешнего уровня):
- Домен (только для бизнес-логики - сущности, объекты-значения, события и исключения)
- Приложение (переводит входные и выходные данные между API / Постоянством / Инфраструктурой и Доменом, чтобы сервисы / репозитории / обработчики и т. Д. Шли бы сюда)
- API / Постоянство / Инфраструктура (внешние проблемы)
Зависимости смотрят только внутрь: API/Persistence/Infrastructure > Application > Domain
Однако я хочу использовать Mediatr для обработки уведомлений о событиях в домене.
События домена будут передаваться на уровне домена, но Mediatr требуются события для реализации интерфейса INotification
.
Я бы хотел, чтобы в идеале не зависели зависимости Mediatr от уровня домена, так как он ощущается как проблема уровня приложения.
Можно ли определить событие домена на уровне домена и каким-то образом заставить его реализовать интерфейс INotification
на уровне приложений?
Или зависимость от Mediatr действительно не так уж и плоха на уровне домена, если она будет использоваться для реализации единого интерфейса? Я в порядке с практичностью, но я просто хотел проверить, есть ли способ избежать этого, о котором я просто не замечал.