我建立基于微服务架构的应用程序。现在我有2个项目的WebAPI和需要一种方法以某种方式分享他们之间的共同服务注册。我的意思是......我必须重新注册在Startup.cs所有常见的服务对每个项目的WebAPI我添加到解决方案。服务,如:
有没有一种方法,我可以集中这些共同的东西,让他们全球为我所有的WebAPI项目?
对于加用最少的重码的服务,一个解决方案是创建一个共享的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
方法类似的事情,以及使用该服务。