前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >.NET Core开发实战(第17课:为选项数据添加验证:避免错误配置的应用接收用户流量)--学习笔记

.NET Core开发实战(第17课:为选项数据添加验证:避免错误配置的应用接收用户流量)--学习笔记

作者头像
郑子铭
发布2021-01-13 15:25:27
3980
发布2021-01-13 15:25:27
举报

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

三种验证方法

1、直接注册验证函数

2、实现 IValidateOptions

3、使用 Microsoft.Extensions.Options.DataAnnotations

延用上一节代码

需要添加验证的时候不能用 Configure,而用 AddOptions 方法

代码语言:javascript
复制
//services.Configure<OrderServiceOptions>(configuration);

services.AddOptions<OrderServiceOptions>().Configure(options =>
{
    configuration.Bind(options);
}).Validate(options =>
{
    return options.MaxOrderCount <= 100;
}, "MaxOrderCount 不能大于100");

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

接着使用属性的方式,切换成属性注入

代码语言:javascript
复制
services.AddOptions<OrderServiceOptions>().Configure(options =>
{
    configuration.Bind(options);
}).ValidateDataAnnotations();

还需要修改 OrderServiceOptions,定义它的验证属性

代码语言:javascript
复制
public class OrderServiceOptions
{
[Range(30, 100)]
public int MaxOrderCount { get; set; } = 100;
}

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

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

首先是定义验证类

代码语言:javascript
复制
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;
        }
    }
}

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

代码语言:javascript
复制
services.AddOptions<OrderServiceOptions>().Configure(options =>
{
    configuration.Bind(options);
}).Services.AddSingleton<IValidateOptions<OrderServiceOptions>>(new OrderServiceValidateOptions( ));

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

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

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-03-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 DotNet NB 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 17 | 为选项数据添加验证:避免错误配置的应用接收用户流量
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档