【问题标题】:MassTransit Saga: what is correct way to inject scoped services?MassTransit Saga:注入范围服务的正确方法是什么?
【发布时间】:2021-09-21 08:06:24
【问题描述】:

我有 asp .net core 3.1 应用程序和 Masstransit 7.2.2。 我有一个 Saga,我必须在其中使用范围服务。现在我注入 IServiceProvider 并手动创建所需的对象:

using var scope = serviceProvider.CreateScope();
var myService1 = scope.ServiceProvider.GetRequiredService<IMyService1>();
var myService2 = scope.ServiceProvider.GetRequiredService<IMyService2>();

如果我在 saga 的不同步骤中需要 IMyService1IMyService2,我必须在每个步骤中编写相同的代码,因为我应该处理 scope 对象。

这是唯一的方法还是有其他方法?

谢谢!

【问题讨论】:

    标签: asp.net-core masstransit saga


    【解决方案1】:

    要在状态机中使用依赖项,您必须创建一个custom activity。该活动将从为 saga 创建的范围内的容器中解析。

    【讨论】:

      猜你喜欢
      • 2020-01-21
      • 2015-01-08
      • 1970-01-01
      • 2023-02-22
      • 2019-08-22
      • 1970-01-01
      • 2021-04-29
      相关资源
      最近更新 更多