ASP.NET Core Web API中Startup的使用技巧

别来无恙 提交于 2020-01-21 18:39:15

Startup类和服务配置   

STARTUP CLASS AND THE SERVICE CONFIGURATION

在 Startup 类中,有两个方法:ConfigureServices 是用于服务注册,Configure 方法是向应用程序的请求管道中添加中间件。

因此,最好的方式是保持 ConfigureServices 方法简洁,并且尽可能地具有可读性。当然,我们需要在该方法内部编写代码来注册服务,但是我们可以通过使用 扩展方法 来让我们的代码更加地可读和可维护。

例如,让我们看一个注册 CORS 服务的不好方式:

 

public void ConfigureServices(IServiceCollection services)
{
   services.AddCors(options =>
   {
       options.AddPolicy("CorsPolicy", builder => builder.AllowAnyOrigin()
           .AllowAnyMethod()
           .AllowAnyHeader()
           .AllowCredentials());
   });
}

  

尽管这种方式看起来挺好,也能正常地将 CORS 服务注册成功。但是想象一下,在注册了十几个服务之后这个方法体的长度。

这样一点也不具有可读性。

一种好的方式是通过在扩展类中创建静态方法:

 

public static class ServiceExtensions
{
   public static void ConfigureCors(this IServiceCollection services)
   {
       services.AddCors(options =>
       {
           options.AddPolicy("CorsPolicy", builder => builder.AllowAnyOrigin()
               .AllowAnyMethod()
               .AllowAnyHeader()
               .AllowCredentials());
       });
   }
}

  

然后,只需要调用这个扩展方法即可:

public void ConfigureServices(IServiceCollection services)
{
   services.ConfigureCors();
}

 

  

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!