.NET Core开发实战(第17课:为选项数据添加验证:避免错误配置的应用接收用户流量)--学习笔记...
生活随笔
收集整理的這篇文章主要介紹了
.NET Core开发实战(第17课:为选项数据添加验证:避免错误配置的应用接收用户流量)--学习笔记...
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
17 | 為選項數據添加驗證:避免錯誤配置的應用接收用戶流量
三種驗證方法
1、直接注冊驗證函數
2、實現 IValidateOptions
3、使用 Microsoft.Extensions.Options.DataAnnotations
延用上一節代碼
需要添加驗證的時候不能用 Configure,而用 AddOptions 方法
//services.Configure<OrderServiceOptions>(configuration);services.AddOptions<OrderServiceOptions>().Configure(options => {configuration.Bind(options); }).Validate(options => {return options.MaxOrderCount <= 100; }, "MaxOrderCount 不能大于100");配置中的值是200,所以運行之后報錯,提示 “MaxOrderCount 不能大于100”
接著使用屬性的方式,切換成屬性注入
services.AddOptions<OrderServiceOptions>().Configure(options => {configuration.Bind(options); }).ValidateDataAnnotations();還需要修改 OrderServiceOptions,定義它的驗證屬性
public class OrderServiceOptions { [Range(30, 100)] public int MaxOrderCount { get; set; } = 100; }配置中的值是200,所以運行之后報錯,提示 “MaxOrderCount 的值必須在30到100之間”
接著是第三種方式,實現接口的方式
首先是定義驗證類
public class OrderServiceValidateOptions : IValidateOptions<OrderServiceOptions> {public ValidateOptionsResult Validate(string name, OrderServiceOptions options){if (options.MaxOrderCount > 100){return ValidateOptionsResult.Fail("MaxOrderCount 不能大于100");}else{return ValidateOptionsResult.Success;}} }要使用這個類,需要注入進去
services.AddOptions<OrderServiceOptions>().Configure(options => {configuration.Bind(options); }).Services.AddSingleton<IValidateOptions<OrderServiceOptions>>(new OrderServiceValidateOptions( ));配置中的值是200,所以運行之后報錯,提示 “MaxOrderCount 不能大于100”
總結一下,通過添加選項的驗證,可以在配置錯誤的情況下阻止應用程序啟動,這樣就可以避免用戶流量達到錯誤的節點上
總結
以上是生活随笔為你收集整理的.NET Core开发实战(第17课:为选项数据添加验证:避免错误配置的应用接收用户流量)--学习笔记...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 3月数据库排行:前10整体下行,出新技术
- 下一篇: 使用有序GUID:提升其在各数据库中作为