【发布时间】:2018-12-22 23:35:56
【问题描述】:
按照https://masstransit-project.com/usage/configuration.html的指令配置MassTransit后
你如何在
中使用(发布/订阅)它- 一个 ASP.NET Core Web API 控制器?
- 在接口服务中?
namespace App1.Message.API
{
public class Startup
{
.....
private IContainer container { get; set; }
public IServiceProvider ConfigureServices(IServiceCollection services)
{
......
var builder = new ContainerBuilder();
builder.Register(c =>
{
return Bus.Factory.CreateUsingRabbitMq(sbc =>
sbc.Host("localhost", "/", h =>
{
h.Username("guest");
h.Password("guest");
})
);
})
.As<IBusControl>()
.As<IBus>()
.As<IPublishEndpoint>()
.SingleInstance();
builder.Populate(services);
container = builder.Build();
return new AutofacServiceProvider(container);
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env, IApplicationLifetime lifetime)
{
......
//resolve the bus from the container
var bus = container.Resolve<IBusControl>();
//start the bus
var busHandle = TaskUtil.Await(() => bus.StartAsync());
//register an action to call when the application is shutting down
lifetime.ApplicationStopping.Register(() => busHandle.Stop());
}
}
}
【问题讨论】:
标签: c# asp.net asp.net-core asp.net-core-webapi masstransit