第17课:为选项数据添加验证:避免错误配置的应用接收用户流量

学习分享 丨作者 / 郑 子 铭 丨公众号 / DotNet NB / CloudNative NB

三种验证方法

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,定义它的验证属性

配置中的值是200,所以运行之后报错,提示 “MaxOrderCount 的值必须在30到100之间”

接着是第三种方式,实现接口的方式

首先是定义验证类

要使用这个类,需要注入进去

配置中的值是200,所以运行之后报错,提示 “MaxOrderCount 不能大于100”

总结一下,通过添加选项的验证,可以在配置错误的情况下阻止应用程序启动,这样就可以避免用户流量达到错误的节点上

GitHub源码链接:

https://github.com/MingsonZheng/DotNetCoreDevelopmentActualCombat/tree/main/OptionsDemoarrow-up-right

Last updated