.Net Core3.1 常用的服務注入
阿新 • • 發佈:2020-07-13
用.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