【问题标题】:EasyNetQ Publish method not found未找到 EasyNetQ 发布方法
【发布时间】:2020-11-14 20:48:45
【问题描述】:

我一直在设置 EasyNetQ https://github.com/EasyNetQ/EasyNetQ/wiki/Quick-Start

以下代码

using System;
using EasyNetQ;

    static void Main(string[] args)
    {
        using (var bus = RabbitHutch.CreateBus("host=localhost"))
        {
            var input = "";
            Console.WriteLine("Enter a message. 'Quit' to quit.");
            while ((input = Console.ReadLine()) != "Quit")
            {
                bus.Publish(new TextMessage
                {
                    Text = input
                });
            }

在 bus.Publish 行上引发此错误
错误 CS1929“IBus”不包含“发布”的定义,并且最佳扩展方法重载“PubSubExtensions.Publish(IPubSub, TextMessage, CancellationToken)”需要“IPubSub”类型的接收器 PetStore.StockDelivery.Publish

我已经安装了 EasyNetQ

<ItemGroup>
    <PackageReference Include="EasyNetQ" Version="5.3.0-alpha0074" />
</ItemGroup>

我通过 nuget 添加了这个并获得了 RabbitMQ 和其他依赖项

当我查看 IBus 上可用的内容时

IPubSub PubSub { get; }
IRpc Rpc { get; }
ISendReceive SendReceive { get; }
IScheduler Scheduler { get; }
IAdvancedBus Advanced { get; }

我有什么遗漏吗? 我也有 RabbitMQ 服务器在本地主机上的 mashine 上运行良好,我已经测试过它的工作原理

【问题讨论】:

    标签: c# rabbitmq easynetq


    【解决方案1】:

    他们将其移至 PubSub 属性下。请参见下面的代码示例:

     public class Publisher<T>
        {
            IBus bus;
            public Publisher()
            {
                bus = RabbitHutch.CreateBus("host=localhost");
            }
            
            public async void Send(T message)
            {            
                await bus.PubSub.PublishAsync(message).ConfigureAwait(false);              
                 
            }
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-05-17
      • 1970-01-01
      • 2017-01-15
      • 1970-01-01
      • 1970-01-01
      • 2021-04-23
      • 2016-11-07
      • 1970-01-01
      相关资源
      最近更新 更多