1. 程式人生 > 實用技巧 >.Net Core3.1 常用的服務注入

.Net Core3.1 常用的服務注入

用.CORE3.1構建了專案,在Startup.cs進行服務注入,這裡記錄下:

1、SuppressModelStateInvalidFilter

services.Configure<ApiBehaviorOptions>(options => options.SuppressModelStateInvalidFilter = true);
 SuppressModelStateInvalidFilter =true時,會關閉預設模型驗證過濾器。[ApiController] 預設自帶有400模型驗證,且優先順序比較高,如果需要自定義模型驗證,則需要先關閉預設的模型驗證。

2、AddControllers

services.AddControllers(options =>
{
     options.Filters.Add<GlobalExceptionFilter>();
})

  將控制器的服務新增到指定的Microsoft.Extensions.DependencyInjection.IServiceCollection。此方法不會註冊用於檢視或頁面的服務,此方法使用API的控制器為常用功能配置MVC服務。我們也可以新增自定義的服務,如上全域性異常過濾器。

3、AddControllersAsServices  

services.AddControllers().AddControllersAsServices();

  Controller 預設是不會通過自帶容器來 Resolve&Activate 的,是通過MVC自身管理的。可以通過呼叫AddControllersAsServices()方法來讓 Controller 使用自帶容器。

4、AddNewtonsoftJson

services.AddControllers(options =>
{
    options.Filters.Add<ValidFilterAttribute>();
    options.Filters.Add<GlobalExceptionFilter>();
})
.AddControllersAsServices()
.AddNewtonsoftJson(options 
=> { options.SerializerSettings.ContractResolver = new DefaultContractResolver(); });

  配置Newtonsoft.Json特定功能,如輸入和輸出格式化程式。

5、AddHttpContextAccessor

services.AddHttpContextAccessor()

  利用ASP.NET Core提供的IHttpContextAccessor來獲取HttpContext