EventFlow 关于如何在基于 dotnet core 1 的 dotnetcore 上进行配置的示例非常有限,并且在 dotnet core 2 中发生了一些变化
有没有办法在没有 Autofac 的情况下使用 EventFlow 配置?
这里有讨论,最后的评论与我在这里问的问题相同,但没有答案
https://github.com/eventflow/EventFlow/issues/158
基本上我想找到一种方法来使用 DI 中的构建来执行类似的事情
services.AddEventFlowOptions.New...
或
var resolver = EventFlowOptions.New.UseDotnetCoreServices(services)...
或者...你们还用过什么其他东西吗?
最佳答案
我用过这个,效果很好。它看起来像是您将服务传递到 EventFlow 的 IoC AuotFac 中,然后它会围绕它。
正如您所看到的,您像往常一样使用已知的 ASP.NET Core API,您可以以相同的方式进行注入(inject),而无需更改 Controller 等。
我唯一改变的是 voidConfigureServices
到 IServiceProviderConfigureServices
- 我不确定这是否真的会影响任何东西,但它确实有效。
您将需要这些包
- 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
}
关于具有 EventFlow 配置的 ASP.NET Core 2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50700054/