如何解决在 Asp.net Core 5 中配置 NServicebus
我正在使用 NServiceBus.Extensions.Hosting 扩展来配置 NServicebus
public class Program
{
public static void Main(string[] args)
{
CreateHostBuilder(args).Build().Run();
}
private static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.UseNServiceBus(c =>
{
var endpointConfiguration = new EndpointConfiguration("nsb.medusa");
endpointConfiguration.UseTransport<RabbitMQTransport>().ConnectionString("How do I access app settings?");
endpointConfiguration.SendOnly();
return endpointConfiguration;
})
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup<Startup>();
});
}
我遇到的问题是我不知道如何从 IHostBuilder 获取 IConfiguration 的实例。我需要 IConfiguration 以便我可以获取到 RabbitMQ 的连接字符串。
这个也可以移到启动类吗?
解决方法
Microsoft 有一些出色的 documentation。读完后,我只添加了两行代码,现在可以访问配置了。
public class Program
{
public static void Main(string[] args)
{
CreateHostBuilder(args).Build().Run();
}
private static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.UseNServiceBus(c =>
{
var configuration = c.Configuration; /* New */
var cnnStr = configuration.GetSection("mq:connection").Value; /* New */
var endpointConfiguration = new EndpointConfiguration("nsb.medusa");
endpointConfiguration.UseTransport<RabbitMQTransport>().ConnectionString(cnnStr);
endpointConfiguration.SendOnly();
return endpointConfiguration;
})
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup<Startup>();
});
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。