Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/260.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何配置消费以使用不同的邮件类型?(MassTransit)_C#_Azure_Azureservicebus_Masstransit - Fatal编程技术网

C# 如何配置消费以使用不同的邮件类型?(MassTransit)

C# 如何配置消费以使用不同的邮件类型?(MassTransit),c#,azure,azureservicebus,masstransit,C#,Azure,Azureservicebus,Masstransit,我使用MassTransit和Azure服务巴士作为交通工具。我创建了IAlert和实现IAlert的IAlertExt。 我正在尝试发布两条消息: busControl.Publish<IAlert>(new Alert(customerId)); busControl.Publish<IAlertExt>(new AlertExt(customerId)); public class AlertConsumer : IConsumer<IAlert>

我使用MassTransit和Azure服务巴士作为交通工具。我创建了IAlert和实现IAlert的IAlertExt。 我正在尝试发布两条消息:

busControl.Publish<IAlert>(new Alert(customerId));
busControl.Publish<IAlertExt>(new AlertExt(customerId));
public class AlertConsumer : IConsumer<IAlert>
    {
        public async Task Consume(ConsumeContext<IAlert> context){
           ...
        }
    }

public class AlertExtConsumer : IConsumer<IAlertExt>
    {
        public async Task Consume(ConsumeContext<IAlertExt> context){
            ...
        }
    }
busControl.Publish(新警报(customerId));
发布(新的AlertExt(customerId));
并编写消费者来处理消息:

busControl.Publish<IAlert>(new Alert(customerId));
busControl.Publish<IAlertExt>(new AlertExt(customerId));
public class AlertConsumer : IConsumer<IAlert>
    {
        public async Task Consume(ConsumeContext<IAlert> context){
           ...
        }
    }

public class AlertExtConsumer : IConsumer<IAlertExt>
    {
        public async Task Consume(ConsumeContext<IAlertExt> context){
            ...
        }
    }
公共类AlertConsumer:IConsumer
{
公共异步任务使用(使用上下文){
...
}
}
公共类AlertExtConsumer:IConsumer
{
公共异步任务使用(使用上下文){
...
}
}
现在,在发布之后,两个使用者检索一条使用通用接口发布的消息


如何强制AlertExtConsumer检索不仅使用IAlertExt发布的消息,还使用IAlert发布的消息?

您可以将两个接口放在同一个使用者中,如下所示

public class AlertConsumer : 
    IConsumer<IAlert>,
    IConsumer<IAlertExt>
{
    public async Task Consume(ConsumeContext<IAlert> context){
       ...
    }
    public async Task Consume(ConsumeContext<IAlertExt> context){
        ...
    }
}
公共类AlertConsumer:
我的消费者,
消费者
{
公共异步任务使用(使用上下文){
...
}
公共异步任务使用(使用上下文){
...
}
}
两个接口都将绑定到同一个使用者队列