Configuration Net核心在多个API之间共享公共服务注册

Configuration Net核心在多个API之间共享公共服务注册,configuration,microservices,asp.net-core-webapi,Configuration,Microservices,Asp.net Core Webapi,我正在构建一个基于微服务体系结构的应用程序。 目前,我有两个WebApi项目,需要一种方法在它们之间共享公共服务注册。 我的意思是。。。对于我添加到解决方案中的每个WebApi项目,我必须在Startup.cs中重新注册所有公共服务。 服务,例如: 全局错误处理中间件 日志记录配置 路由设置 appSettings.json配置 等等 有没有一种方法可以集中这些常见的东西,使它们成为我所有WebApi项目的全局对象?要以最少的重复代码添加服务,一种解决方案可以是在共享ASP.NET核心项目中

我正在构建一个基于微服务体系结构的应用程序。 目前,我有两个WebApi项目,需要一种方法在它们之间共享公共服务注册。 我的意思是。。。对于我添加到解决方案中的每个WebApi项目,我必须在Startup.cs中重新注册所有公共服务。 服务,例如:

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

有没有一种方法可以集中这些常见的东西,使它们成为我所有WebApi项目的全局对象?

要以最少的重复代码添加服务,一种解决方案可以是在共享ASP.NET核心项目中创建一个静态类,该类具有每个API项目引用的扩展方法,类似于:

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

    return services;
}

对于
配置
方法以及使用服务,您也可以执行类似的操作。

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