我在我的项目中使用 MassTransit 包(整洁的架构)。
在 API 层中,我编写自定义授权过滤器,并在 HttpContext
中存在我的 CurrentUserInfo 数据。
然后我需要 IConsumer 存在的应用程序层内的 UserInfo,如下面的代码。
现在哪种方式更好:
- 将元数据添加到我的请求客户端中?
- 声明通用类并将其注入(inject)到已实现的 IConsumer 类中。
public class OptionCreateConsumer : IConsumer<OptionCreateRequest>
{
private readonly IMapper _mapper;
private readonly IUnitOfWork _unitOfWork;
public OptionCreateConsumer(IMapper mapper, IUnitOfWork unitOfWork)
{
_mapper = mapper;
_unitOfWork = unitOfWork;
}
}
最佳答案
在 scoped filter示例中,您可以看到如何使用 Send/Publish 和 Consume 过滤器捕获 Token
对象并将其从请求客户端传递给消费者。
TokenActionFilter
是 added这样它也被限定了范围,将传入的数据拉入 Token
(在您的情况下,这将是 UserInfo
对象。
filters为 MassTransit 配置的用于将该数据添加到 header ,以便下游消费者能够使用该 header 来初始化 token (或您的场景的 UserInfo)。
关于c# - MassTransit 使用元数据创建请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72270837/