如何使用Scoped Lifetime创建MassTransit消息拦截器(Observer)

时间:2017-06-19 20:18:44

标签: masstransit

我们可以使用以下方式设置Consume Observer

busControl.ConnectConsumeObserver(container.GetInstance<MessageConsumerInterceptor>());

我想将Scope生活方式应用于MessageConsumerInterceptor,以便我可以在使用或处理消息之前填充/初始化某个对象。我可以通过消息处理程序或使用者访问该填充的对象。现在我如何使用MassTransit实现这一目标?

我期待你的帮助或可能的建议。

提前致谢。

1 个答案:

答案 0 :(得分:0)

观察者不是这个的好选择。观察者只观察,他们不应该改变任何状态或对消息处理产生影响。

您正在关注的是中间件。

检查此documentation page有关如何创建和应用自定义中间件的信息。

您将在过滤器中获得ConsumeContext作为Send方法参数,并且您可以使用方法GetOrAddPayload<T>TryGetPayload向上下文添加内容,因此您可以稍后在您的消费者中获取此数据。