【问题标题】:Is the AddNServiceBus() method callable on an IServiceCollection object?是否可以在 IServiceCollection 对象上调用 AddNServiceBus() 方法?
【发布时间】:2020-02-19 18:41:34
【问题描述】:

我正在尝试在 .NET Core Web Api 项目中设置 NSB,以将命令发送到包含处理程序以接收消息的 .NET Core Endpoint 项目。 到目前为止注册 NSB 的代码:

     public void ConfigureServices(IServiceCollection services)
        {
            ......
            ......
            //services.AddNServiceBus(endpointConfiguration);
            var endpoint = Endpoint.Start(SetupEndpointConfiguration()).GetAwaiter().GetResult();
            services.AddSingleton(endpoint);
        }

根据 NSB 文档 (https://docs.particular.net/samples/dependency-injection/aspnetcore/),使用 .net core 的内置 DI(对我来说是 3.1),我们应该能够在服务对象上调用 .AddNServiceBus()。但是,我无法这样做,因为 VS 无法解析该方法。 我安装了以下库:

    using Microsoft.AspNetCore.Builder;
    using Microsoft.AspNetCore.Hosting;
    using Microsoft.Extensions.Configuration;
    using Microsoft.Extensions.DependencyInjection;
    using Microsoft.Extensions.Hosting;
    using Microsoft.OpenApi.Models;
    using NServiceBus;
    using Serilog;

我尝试过的: 使用 Endpoint.Start() 创建端点并使用 addSingleton() 注册它,如第一个代码块所示。但不满意,因为文档应该让我使用 AddNServiceBus() 在 ConfigureServices() 中注册 NSB。

为什么 .AddNServiceBus() 无法解析,尽管安装了 NSB?

【问题讨论】:

    标签: asp.net-core-webapi nservicebus asp.net-core-3.1


    【解决方案1】:

    我认为您缺少using 声明:

    使用 NServiceBus.Extensions.DependencyInjection;

    您可以通过单击您引用的示例中相关代码 sn-p 上方的“复制使用”来验证您是否拥有正确的代码。

    【讨论】:

    • 当我浏览 nuget 管理器时,那个特定的不存在,尽管你是对的,他们在文档中有那个。这是他们真正需要的one吗?
    猜你喜欢
    • 2010-10-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-20
    • 2012-08-23
    • 1970-01-01
    • 2014-09-16
    相关资源
    最近更新 更多