ASP.NET Core 2 с конфигурацией EventFlow - PullRequest
0 голосов
/ 05 июня 2018

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

или ... всего, что вы, ребята, использовали?

Ответы [ 2 ]

0 голосов
/ 14 февраля 2019

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

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

0 голосов
/ 06 июня 2018

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

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

Единственное, что я изменил, было void ConfigureServicesна IServiceProvider ConfigureServices - я не уверен, влияет ли это на что-то, но это работает.

Вам понадобятся эти пакеты

  • EventFlow.Aspnetcore.Middlewares;
  • EventFlow.AspNetCore.Extensions;
  • EventFlow.Autofac.Extensions;

In 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
    }
...