【发布时间】:2018-05-26 06:27:24
【问题描述】:
早上好。
我在我的项目中使用域事件,我发现实现它的最简单方法是使用 MediatR。 但我不希望我的项目直接依赖它,我想应用依赖反转来隐藏库。
由于 INotification 接口,当前代码在 Mediator 中有依赖项
public class EmailConfirmedEvent : INotification
{
public Guid PassengerId { get; }
public string Email { get; }
public EmailConfirmedEvent(Guid passengerId, string email)
{
Email = email;
PassengerId = passengerId;
}
}
但我想变成这样:
public class EmailConfirmedEvent : IMyProjectDomainEvent
{
public Guid PassengerId { get; }
public string Email { get; }
public EmailConfirmedEvent(Guid passengerId, string email)
{
Email = email;
PassengerId = passengerId;
}
}
通过某种方式,我需要将中介事件/事件处理程序“转换”为我的项目事件/事件处理程序。
最好的方法是什么。 提前致谢。
【问题讨论】:
-
您最终将不得不创建自己的 MediatR 版本。这是一个很大的努力。权衡是否值得?
-
嗯,我正在考虑我最终会切换库的未来。我不想重新创建事件调度库,我只想从我的代码中抽象出 MediatR