我有一个使用 ServiceMatrix 创建的4个NSB主机端点的解决方案,我想在一个传奇中使用它们。
我知道如何从命令转换为Saga,并且在测试项目中工作正常。我不明白的是我如何对发布的事件做同样的事情,因为菜单选项不可用。是否可以使用 ServiceMatrix ?
执行此操作我试图通过跟随this tutorial手动实现更改并观察我转换为Saga时对我的测试项目所做的更改。
它构建正常但在运行时在框架内抛出错误:
System.InvalidOperationException未处理 消息:mscorlib.dll中出现未处理的“System.InvalidOperationException”类型异常
附加信息:没有IBus实例可用,请配置一个,并验证您没有在您的saga中定义自己的Bus属性,因为它隐藏了基类中的那个
我正在使用VS2013和ServiceBus 5。
更新 我注释掉了继承的IHandleMessages<>生成的代码中的接口和公共IBus总线属性,它运行时没有此错误。我不喜欢这样做,因为使用该工具进行的下一次设计更改将覆盖这些修复。
答案 0 :(得分:1)
在命令处理程序中,您通常有一个IBus类型的属性,它通过属性注入或构造函数注入注入到处理程序类中。
当您从命令处理程序移动到Saga时,您需要从处理程序中删除您的IBus属性。 Saga基类有一个Bus属性,你应该使用它。此属性会自动填充,您不应该关心这个。这正是这个例外告诉你的。