2

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)...

或者……你们用过的其他什么东西?

4

2 回答 2

4

我用过这个,它工作正常。它看起来是您将服务传递到 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
    }
于 2018-06-06T18:37:35.820 回答
2

在提供的启动设置之后,我创建了一个简单的 Web api 解决方案,它与 EventFlow 和 .net core 2.2 集成。它使用来自源的相同命令/事件

希望有帮助!

于 2019-02-14T10:54:16.507 回答