【问题标题】:Method overload of ConnectReceiveEndpoint changed after upgrading MassTransit升级 MassTransit 后更改 ConnectReceiveEndpoint 的方法重载
【发布时间】:2019-07-19 08:52:38
【问题描述】:

我正在从 5.3.2 升级到 5.5.3 版本,但以下代码无法编译。我得到错误

“IReceiveEndpointConfigurator”不包含“BindMessageExchanges”的定义,并且找不到接受“IReceiveEndpointConfigurator”类型的第一个参数的可访问扩展方法“BindMessageExchanges”(您是否缺少 using 指令或程序集引用?)

“IReceiveEndpointConfigurator”不包含“Bind”的定义,并且找不到接受“IReceiveEndpointConfigurator”类型的第一个参数的可访问扩展方法“Bind”(您是否缺少 using 指令或程序集引用?)

似乎 pIReceiveEndpointConfigurator 而不是 IRabbitMqReceiveEndpointConfigurator 了。重载方法或扩展方法似乎有变化。

我应该改用什么重载方法?该代码在测试场景中用于连接临时队列/交换。 _host 的类型为 IRabbitMqHost

_handle = _host.ConnectReceiveEndpoint(p =>
        {
            p.BindMessageExchanges = false;
            p.Handler<T>(context =>
            {
                _receivedMessage = context.Message;
                _messageReceived.Set();
                return Task.CompletedTask;
            });
            p.Bind<T>(z =>
            {
                z.ExchangeType = "direct";
                z.RoutingKey = _routingKey;
            });
        });

【问题讨论】:

    标签: c# rabbitmq masstransit


    【解决方案1】:

    【讨论】:

    • 不,我们目前正在使用重载,但未指定队列名称。那么我们应该为临时队列提供什么队列名称
    • 如果我通过 string.empty,mastransit 是否会生成一个随机名称。我应该自己生成随机名称吗?
    • 您可以使用host.Topology 来创建一个临时队列名称,它在某个地方,不确定具体在哪里。
    猜你喜欢
    • 2022-01-13
    • 1970-01-01
    • 2020-12-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多