在ServiceMatrix中,是否可以将'ConvertToSaga'作为发布/订阅事件消息而不是命令消息的端点?

时间:2015-03-03 16:23:25

标签: nservicebus nservicebus-sagas

我有一个使用 ServiceMatrix 创建的4个NSB主机端点的解决方案,我想在一个传奇中使用它们。

我知道如何从命令转换为Saga,并且在测试项目中工作正常。我不明白的是我如何对发布的事件做同样的事情,因为菜单选项不可用。是否可以使用 ServiceMatrix

执行此操作

我试图通过跟随this tutorial手动实现更改并观察我转换为Saga时对我的测试项目所做的更改。

它构建正常但在运行时在框架内抛出错误:

  

System.InvalidOperationException未处理   消息:mscorlib.dll中出现未处理的“System.InvalidOperationException”类型异常

     

附加信息:没有IBus实例可用,请配置一个,并验证您没有在您的saga中定义自己的Bus属性,因为它隐藏了基类中的那个

我正在使用VS2013和ServiceBus 5。

更新 我注释掉了继承的IHandleMessages<>生成的代码中的接口和公共IBus总线属性,它运行时没有此错误。我不喜欢这样做,因为使用该工具进行的下一次设计更改将覆盖这些修复。

1 个答案:

答案 0 :(得分:1)

在命令处理程序中,您通常有一个IBus类型的属性,它通过属性注入或构造函数注入注入到处理程序类中。

当您从命令处理程序移动到Saga时,您需要从处理程序中删除您的IBus属性。 Saga基类有一个Bus属性,你应该使用它。此属性会自动填充,您不应该关心这个。这正是这个例外告诉你的。