具有 EventFlow 配置的 ASP.NET Core 2

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

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

或者...你们还用过什么其他东西吗?

最佳答案

我用过这个,效果很好。它看起来像是您将服务传递到 EventFlow 的 IoC AuotFac 中,然后它会围绕它。

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

我唯一改变的是 voidConfigureServicesIServiceProviderConfigureServices - 我不确定这是否真的会影响任何东西,但它确实有效。

您将需要这些包

  • 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
    }

关于具有 EventFlow 配置的 ASP.NET Core 2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50700054/

相关文章:

c# - 如何从数据库中获取一个简单的字符串

c# - 立即开始使用 EDMX

c# - 如何在.net core 的库中包含文件

c# - 'System.Security.Cryptography.ProtectedData',版本 : '4.4.0' can not be found

reactjs - 如何将网格数据导出到 excel、csv 和 pdf 文件(React)

c# - 使用EventFlow监控本地机器上的ETW事件

c# - SQL 插入语句不工作

asp.net - IIS Express 捕获所有子域 url