代码之家  ›  专栏  ›  技术社区  ›  Piotr Kula David Boike

具有EventFlow配置的ASP.NET Core 2

  •  2
  • Piotr Kula David Boike  · 技术社区  · 7 年前

    eventflow在基于dotnet core 1的dotnet core上的配置示例非常有限,但在dotnet core 2中,情况略有变化。

    有没有办法在没有autofac的情况下使用eventflow配置?

    这里有讨论,最后的评论和我在这里问的一样,但没有答案

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

    基本上,我想找到一种方法来使用内置的di来做一些事情,比如

    services.AddEventFlowOptions.New...
    

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

    或者…你们还用了什么?

    2 回复  |  直到 7 年前
        1
  •  4
  •   Piotr Kula David Boike    7 年前

    我用过这个,效果很好。它看起来像是将服务传递到eventflow的ioc auotfac中,并将其包装起来。

    如您所见,您像往常一样使用已知的asp.net核心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());
        }
    

    您需要使用包提供的一些中间件

      public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
        {
            app.UseMiddleware<CommandPublishMiddleware>();
            app.UseMvcWithDefaultRoute();//or whatever you are doing
        }
    
        2
  •  2
  •   Johnny    6 年前

    从提供的启动设置开始,我创建了一个 simple web api solution 它与EventFlow和.NET Core 2.2集成。它使用来自源的相同命令/事件

    希望能有帮助!

    推荐文章