我正在从MassTransit状态机传奇发出请求并等待回复。
但可能会有两个错误回复给我:
我不关心请求未满足的条件,我希望这两种情况都会导致发布错误消息。
但是,我找不到任何方法将两个结果与或条件结合起来,因此我可以对两个结果都有一个处理案例,而不是复制粘贴我的代码。
答案 0 :(得分:2)
在这种情况下,您应该创建一个自定义活动(高级,可能不是必需的),或者只创建一个从两个When()条件调用的方法,以便您可以重用语句之间的行为。
Task PublishEvent(BehaviorContext<TInstance> context)
{
var consumeContext = context.GetPayload<ConsumeContext>();
return consumeContext.Publish(new MyEvent(...));
}
{
During(MyRequest.Pending,
When(MyRequest.Completed)
.ThenAsync(PublishEvent),
When(MyRequest.Faulted)
.ThenAsync(PublishEvent));
}