C# 使用带有多个点的参数配置映射

C# 使用带有多个点的参数配置映射,c#,service,nservicebus,C#,Service,Nservicebus,在实现saga编排服务类的ConfigureHowToFindSaga()方法时,我面临一个问题 在这个方法中,我必须指定如何将收到的消息连接到当前的saga对话。我必须特别指定包含saga id的消息的属性。 这个属性是这样的:message.Sup.subperty我不能这样做,因为nservicebus只获取message的第一个属性 我不想更改我的nservicebus版本 我怎么才能知道呢?您有两个选择: 创建一个消息处理程序,该处理程序发送一种新类型的消息,该消息具有需要在更高级别上

在实现saga编排服务类的
ConfigureHowToFindSaga()
方法时,我面临一个问题

在这个方法中,我必须指定如何将收到的消息连接到当前的saga对话。我必须特别指定包含saga id的消息的属性。 这个属性是这样的:
message.Sup.subperty
我不能这样做,因为nservicebus只获取
message
的第一个属性

我不想更改我的nservicebus版本

我怎么才能知道呢?

您有两个选择:

  • 创建一个消息处理程序,该处理程序发送一种新类型的消息,该消息具有需要在更高级别上定义的相关属性

  • 通过实现IFindSagas.Using编写您自己的saga finder


  • 我认为选项1更容易编码。您还可以将处理程序托管在与saga相同的端点中,然后执行Bus.SendLocal,这样它就不会对您的部署产生任何重大影响。

    是否可以向上推该属性?另外,您运行的是什么版本?我的版本是2.6.0.1054。你把房子推高是什么意思?如果您想在消息中创建快捷方式,那是不可能的,因为我无法控制到达我的应用程序的消息(它们都遵循业务标准)。选项1是我一直在考虑的,可能是解决此问题的方法。选项2会更好,我尝试过这样做,但IfindSagas.Using的FindBy方法的输出是唯一的Saga距离,我需要多个Saga距离。我是否必须更改接口IFindSagas.Using?目前我们不支持每条消息处理多个saga实例-我们将在下一个主要版本中考虑这个方向。