Чтобы не изобретать велосипед заново, я бы хотел использовать MediatR в Агрегатах для публикации событий домена. (Не) К счастью (?) MediatR работает как зависимость, которая вводится в классы, а не как то, что я могу назвать статически. Поэтому я бы в итоге создал прямую зависимость от библиотеки через конструктор.
Я не помню, где я читал это (и если я правильно понял), что я должен избегать некоммерческих зависимостей в конструкторах Агрегатов.
Поэтому я не должен делать что-то вроде этого:
public class MyAggregate
{
private readonly IMediator _mediator;
public MyAggregate(IMediator mediator)
{
_mediator = mediator;
}
}
Это заставило меня глубоко задуматься о том, возможно ли или рекомендуется (или не рекомендуется) использовать MediatR в агрегатах ...
Есть ли способ использовать MediatR статически или мне следует внедрить собственный диспетчер событий?
П.С .: Кроме того, не стесняйтесь поправлять меня, если я неправильно понимаю зависимости Агрегатов.
P.S x2:
Я искал Google и ТАК и не могу найти ответ на это.
https://stackoverflow.com/search?q=mediatr+domain+events
Как отделить MediatR от моего бизнес-уровня
DDD: ссылка на интерфейс MediatR из доменного проекта