如何使用MediatR将消息发布到特定渠道并从不同渠道获取不同消息?

时间:2020-05-28 21:46:48

标签: c# asp.net-core mediatr

我开始在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);
        }

    }

0 个答案:

没有答案