多个API之间Asp.Net核心共享公共服务注册

问题描述 投票:0回答:1

我建立基于微服务架构的应用程序。现在我有2个项目的WebAPI和需要一种方法以某种方式分享他们之间的共同服务注册。我的意思是......我必须重新注册在Startup.cs所有常见的服务对每个项目的WebAPI我添加到解决方案。服务,如:

  • 全球错误处理中间件
  • 日志记录配置
  • 路由设置
  • appSettings.json配置等等

有没有一种方法,我可以集中这些共同的东西,让他们全球为我所有的WebAPI项目?

configuration microservices asp.net-core-webapi
1个回答
1
投票

对于加用最少的重码的服务,一个解决方案是创建一个共享的ASP.NET核心项目的扩展方法的静态类,即每个API项目的引用,这看起来是这样的:

public static IServiceCollection AddCommonServices(this IServiceCollection services, IConfigurationSection myOptions)
{
    services.AddService1()
            .AddLogging()
            .Configure<MyOptions>(myOptions)
            ...
    services.AddMvc();

    return services;
}

然后在每个API项目的Startup.cs

public void ConfigureServices(IServiceCollection services)
{
    services.AddCommonServices(Configuration["MyOptions"]);
}

你可以做的Configure方法类似的事情,以及使用该服务。

© www.soinside.com 2019 - 2024. All rights reserved.