我用过这个,它工作正常。它看起来是您将服务传递到 EventFlow 的 IoC AuotFac 并围绕它进行包装。
如您所见,您像往常一样使用已知的 ASP.NET Core API,您以相同的方式注入,而无需更改您的控制器等。
我唯一改变的是void ConfigureServices
-IServiceProvider ConfigureServices
我不确定这是否真的会影响任何东西,但它确实有效。
您将需要这些软件包
- EventFlow.Aspnetcore.Middlewares;
- EventFlow.AspNetCore.Extensions;
- EventFlow.Autofac.Extensions;
在Startup.cs
public IServiceProvider ConfigureServices(IServiceCollection services)
{
services.AddMvc();
var containerBuilder = new ContainerBuilder();
var container = EventFlowOptions.New
.UseAutofacContainerBuilder(containerBuilder)
.AddDefaults(EventFlowTestHelpers.Assembly)
.AddAspNetCoreMetadataProviders();
containerBuilder.Populate(services);
return new AutofacServiceProvider(containerBuilder.Build());
}
并且需要用到包提供的一些MiddleWare
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
app.UseMiddleware<CommandPublishMiddleware>();
app.UseMvcWithDefaultRoute();//or whatever you are doing
}