.net core 在.net core Worker服务(或控制台应用程序)中配置REBS

.net core 在.net core Worker服务(或控制台应用程序)中配置REBS,.net-core,configuration,microservices,rebus,.net Core,Configuration,Microservices,Rebus,我已经看到,使用Startup.cs在ASP.NET核心执行管道中添加rebus非常简洁。 我想知道对于Worker服务或一般的控制台应用程序,是否有相同的简洁方法来实现同样的功能 我见过的大多数.net核心控制台应用程序都是非常简单的演示应用程序。 如果有任何使用.net核心控制台应用程序的具体示例配置,请告知。 当做 Amour Rashid一种方法是添加Microsoft的Microsoft.Extensions.Hosting包,并将您的后台服务构建为后台服务: 公共类MyBackgro

我已经看到,使用Startup.cs在ASP.NET核心执行管道中添加rebus非常简洁。 我想知道对于Worker服务或一般的控制台应用程序,是否有相同的简洁方法来实现同样的功能

我见过的大多数.net核心控制台应用程序都是非常简单的演示应用程序。 如果有任何使用.net核心控制台应用程序的具体示例配置,请告知。 当做
Amour Rashid

一种方法是添加Microsoft的Microsoft.Extensions.Hosting包,并将您的后台服务构建为
后台服务

公共类MyBackgroundService:BackgroundService
{
readonly IServiceCollection_services=new ServiceCollection();
公共背景服务()
{
//配置总线
services.AddResbus(
配置=>configure
.Transport(t=>t.Use(…)
);
}
受保护的覆盖异步任务ExecuteAsync(CancellationToken stoppingToken)
{
使用var provider=_services.BuildServiceProvider();
//启动公共汽车
provider.UseRebus();
同时(!stoppingToken.IsCancellationRequested)
{
等待任务延迟(时间跨度从秒(1)开始,停止停止);
}
}
}
然后你可以通过

公共静态IHostBuilder CreateHostBuilder(字符串[]args)=>
Host.CreateDefaultBuilder(args)
.ConfigureServices((主机上下文,服务)=>
{
services.AddHostedService();
});
在您的创业中。

谢谢Mogens, 另一种方法是

var host=CreateHostBuilder(args.Build()

host.UseRebus(); host.Run()

或在ConfigureServices方法中 .... var provider=services.CreateServiceProvider(); provider.UseRebus()

它帮助我使用REBS创建工人服务