.net-core - 在 MSDI IServiceCollection.AddTransient 服务中访问 MassTransit ConsumeContext
问题描述
ConsumeContext
添加临时服务时,我们需要访问我们的标头。我们之前一直在使用IHttpContextAccessor
来获取普通 http 请求的标头,现在我们需要为我们的事件消费者做类似的事情。在使用 MassTransit 时,在设置我们的依赖项/服务时,我们将如何访问已消费事件的标头?
services.TryAddTransient<ISapService>(provider =>
{
var httpContextAccessor = provider.GetService<IHttpContextAccessor>();
httpContextAccessor.HttpContext.Request.Headers.TryGetValue(
"x-plant-id",
out var plantHeader
);
return new SapService(plantHeader);
});
解决方案
我不确定它是否适用于瞬态服务,但 MassTransit 确实支持范围过滤器。它们在消费者范围内得到解决。
推荐阅读
- linux - NMI 看门狗消息,即。'关闭所有 CPU 上的硬锁定检测器'
- java - 如何修复recycleview项目中的“尝试调用虚拟方法”错误?
- swift - 尽管使用 SwiftUI 成功解码了 json 数据,但没有图像
- javascript - 我正在尝试创建过滤器,当我单击按钮过滤元素时它不起作用
- python - folium map上的Json层丢失,但没有错误
- sql - Oracle IDENTITY 列与 PRIMARY KEY
- java - 如何在 Flutter for Android 中渲染 OpenGL?
- css - 根据 Angular 条件修改 CSS 类
- angular - Angular 8,如何在选择一个下拉列表时从哪里创建一个反应式?
- javascript - 需要帮助修复有关 URL 检测的功能 (window.location.href.indexOf)