You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用MassTransit 8.0.8时遇RoutingSlipCompleted无GetVariable方法错误

解决MassTransit 8.0.8中RoutingSlipCompleted无法调用GetVariable的问题

错误原因

MassTransit 8.x版本调整了GetVariable扩展方法的调用对象,该方法现在需要以**ConsumeContext实例**作为调用主体,而非RoutingSlipCompleted消息本身。你当前代码直接在context.Message上调用该方法,不符合新版本API要求,因此触发错误。

修复方案

修改Consume(ConsumeContext<RoutingSlipCompleted>)方法内的代码,将GetVariable的调用主体替换为context:

public async Task Consume(ConsumeContext<RoutingSlipCompleted> context)
{
    // 正确调用方式:通过ConsumeContext实例调用GetVariable
    var requestId = context.GetVariable<Guid>(nameof(ConsumeContext.RequestId));

    // 替换为你的业务逻辑
    // throw new NotImplementedException();
}

额外提示

  • 若要避免变量不存在时抛出异常,可使用带默认值的重载:
    var requestId = context.GetVariable<Guid>(nameof(ConsumeContext.RequestId), Guid.Empty);
    
  • 确认代码已正确引用MassTransit和MassTransit.Courier命名空间,扩展方法依赖这些命名空间才能正常使用。

内容的提问来源于stack exchange,提问作者Ali Eshghi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 02:50:53