我正在构建基于微服务架构的应用程序。 目前,我有2个WebApi项目,并且需要一种在它们之间共享公共服务注册的方法。 我的意思是...我必须为我添加到解决方案中的每个WebApi项目在Startup.cs中重新注册所有常用服务。 服务如:
有没有办法集中这些通用的东西,使它们在我的所有WebApi项目中都具有全局性?
答案 0 :(得分:1)
要使用最少的重复代码添加服务,一种解决方案可能是在每个API项目引用的共享ASP.NET Core项目中使用扩展方法创建一个静态类,
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
方法做类似的事情,也可以使用服务。