【发布时间】:2020-12-08 12:13:21
【问题描述】:
我有一个像这样的通用消息接口:
public interface IMyMessage
{
int EventCode {get;}
}
现在我有多个消费者处理这条消息:
public class MyConsumer1: IConsumer<IMyMessage>{...}
public class MyConsumer2: IConsumer<IMyMessage>{...}
我希望 MyConsumer1 仅处理 EventCode==1 的那些消息,并让 MyConsumer2 处理 EventCode==2 的所有消息。
我知道我可以在 Consume 方法中做一个 if 语句,但想知道是否有更好的方法,比如一些路由过滤器?
我的首选方式是创建一个属性,即。 HandlesEventCodeAttribute(1) 并将其应用于消费者。
我还使用 Autofac 容器与 MassTransit 的集成。
请帮忙。
谢谢
【问题讨论】:
标签: .net-core filter autofac masstransit