带有EventFlow配置的ASP.NET Core 2

时间:2018-06-05 12:26:05

标签: asp.net .net-core event-flow

EventFlow在如何配置基于dotnet核心1的dotnetcore上有一个非常有限的例子,但在dotnet core 2中有些变化,

有没有办法在没有Autofac的情况下使用EventFlow配置?

这里有讨论,最后的评论是关于我在这里问的同样的事情,但没有答案

https://github.com/eventflow/EventFlow/issues/158

基本上我想找到一种方法来使用DI中的构建来做一些像

这样的事情
services.AddEventFlowOptions.New...

var resolver = EventFlowOptions.New.UseDotnetCoreServices(services)...

或......你们用过的其他任何东西?

2 个答案:

答案 0 :(得分:4)

我用过它并且工作正常。它看起来像是将服务传递到EventFlow的IoC AuotFac并且它包含了它。

正如您所看到的,您可以像往常一样使用已知的ASP.NET Core API,您可以以相同的方式注入而无需更改Contollers等。

我唯一改变的是void ConfigureServicesIServiceProvider 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
    }

答案 1 :(得分:2)

根据提供的启动安装程序,我创建了一个simple web api solution,它与带有.net core 2.2的EventFlow集成在一起。它使用来自源的相同命令/事件

希望有帮助!