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();
}
