我开始在asp.net core 3.1中使用MediatR。我想提供一个基础结构来获取数据并将其发布到不同的渠道,并在不同的服务中基于该服务获取不同的数据。
我也读过Polymorphic Dispatch
,但找不到解决方法。
这是我在处理程序和发布者中所做的,但是在处理程序部分,我希望能够基于该服务获取不同的数据。
处理程序
public class MessageHandler<TInput> : INotificationHandler<TInput> where TInput : INotification
{
public async Task Handle(TInput notification, CancellationToken cancellationToken)
{
await Task.CompletedTask;
}
}
发布者
public interface IPublisher<TEntity>
{
Task Notify(TEntity entity);
}
public class Publisher<TEntity> : IPublisher<TEntity>
{
private readonly IMediator _mediator;
public Publisher(IMediator mediator)
{
_mediator = mediator;
}
public async Task Notify(TEntity notification)
{
await _mediator.Publish(notification);
}
}