如何解决MassTransit:如何通过依赖注入在所有传出消息上设置自定义标头?
我正在NetCore API中使用MassTransit。
在对API的每个传入请求中,我都在运行中间件,该中间件从传入的HTTP请求中获取一些用户信息,并在我称为CallContext
的作用域对象上设置值。
我可以将此CallContext
注入到我需要它的任何地方,以找出是谁/什么在拨打当前电话并执行适当的操作。
我的许多后端服务都通过MassTransit发布和/或发送消息。我希望所有传出邮件都具有自定义的“ CallContext”标头,以便使用者能够确定是谁或什么生成了邮件。
起初,我考虑过使用观察者来完成此操作,但是文档here不鼓励这样做:
不应使用观察者来修改或拦截消息。至 拦截消息(以添加标题或修改消息内容), 创建一个新的或使用现有的中间件组件。
关于与DI容器一起使用的自定义中间件here的文档尚不清楚。我可以找到的所有样本看起来都与此类似:
configurator.AddPipeSpecification(new ExceptionLoggerSpecification<T>());
使用new
关键字开始了注册过程,因此无法从DI容器中解决我的CallContext
依赖性。
This问题和this GitHub问题正在尝试实现同一件事,但是最近(7.x)我找不到关于如何完成同一件事的任何明确指南。版本的MassTransit。
如何实现自定义中间件,以使中间件能够从.NET Core DI容器解析作用域对象实例?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。