masstransit - 装饰消费者并在消费者(IServiceProvider)中解析服务(masstransit)
问题描述
我正在尝试使用 MassTransit 来实现命令和处理程序 (CQRS) 的中介模式。这有效 - 当一个命令被调度时,正确的处理程序被调用。
现在,我想装饰这些处理程序(不是为了横切关注点,例如日志记录),但我想将装饰器添加到特定处理程序(这样我就可以应用一些权限或授权规则,而无需向处理程序本身添加代码)。这意味着我想用某个函数来装饰命令 A 的处理程序,而不是命令 B 的处理程序。
所以,我想我应该为此使用过滤器。我设法通过使用定义来做到这一点- 所以现在当中介调用具有特定消息类型的特定消费者时,首先调用为其定义的所有过滤器。这很好用。
现在我们来解决问题:我想在过滤器中注入/解析一些服务,因为它们需要访问数据库或进行一些其他验证才能有意义。这就是我卡住的地方。这是上述场景的拉取请求草案:为每个消费者添加过滤器,问题出在此文件中:https ://github.com/bdn-mca/ModularMonolith.Poc/pull/2/files#diff-980261987a7df5d217950a20fccccf88c775bf6c72bf3d536e44d9768b86c51d
我知道 MassTransit 有很多功能,所以我可能做错了什么。
解决方案
推荐阅读
- android - 聚焦 TextInputLayout 时出现 2 个提示
- android - WebView 未加载 ScrollView 中的所有内容
- javascript - 如何在同一浏览器中运行同一域的不同会话?
- javascript - 为什么 V8 中的 Javascript 函数如此庞大?
- permissions - 设计中的 Errno::EACCES::Sessions#new
- python - 如何在不修改代码的情况下禁用在 pytest 中跳过测试?
- sql - Illuminate\Database\QueryException (HY093) SQLSTATE[HY093]: 参数号无效
- python - 如何修复连接到“wrds”数据库的错误?
- java - 执行 AsyncTask 时无法解析符号“执行”
- jenkins-pipeline - 共享库“vars”文件夹结构 - 我可以添加子文件夹吗?