ASP.NET Core 2 с конфигурацией EventFlow

EventFlow имеет очень ограниченный пример того, как сконфигурировать на dotnetcore, который основан на ядре dotnet 1 и немного изменился, но в dotnet core 2

Есть ли способ использовать конфигурацию EventFlow без Autofac?

Здесь обсуждается и последние комментарии о том же, о чем я спрашиваю, но ответов нет

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

в основном я хочу найти способ использовать сборку в DI делать что-то вроде

services.AddEventFlowOptions.New...

или же

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

или... что-нибудь еще, что вы, ребята, использовали?

1 ответ

Решение

Я использовал это, и он работает нормально. На что это похоже, так это то, что вы передаете сервисы в IoC AuotFac EventFlow, и это оборачивается вокруг этого.

Как вы можете видеть, вы используете известный ASP.NET Core API как обычно, вы вводите то же самое без изменений в Contollers и т. Д.

Единственное, что я изменил, было 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
    }

Следуя предоставленной настройке запуска, я создал простое решение для веб-API, которое интегрируется с EventFlow с.net core 2.2. Он использует те же команды / события из источника

Надеюсь, это поможет!

Другие вопросы по тегам