FluentValidation在C#中是怎么进行数据验证的

介绍

FluentValidation 是一个基于 .NET 开发的验证框架,用于构建强类型验证规则的 .NET 库。开源免费

支持 .Net所有平台 包括.NetFramework和.NetCore.

FluentValidation 组件内提供十几种常用验证器,可扩展性好,支持自定义验证器,支持本地化多语言。

安装

在创建任何验证器之前,您需要在项目中添加对 FluentValidation.dll 的引用。最简单的方法是使用 NuGet 包管理器或 dotnet CLI。

Framework 安装FluentValidation版本

core安装FluentValidation.AspNetCore版本

bb3ffb5b09c8d765aff509ce647b5bd1.png

测试

创建一个用户信息类 包含姓名 性别 年龄

public  class UserInformation
    {
        public string Name { get; set; }
        public string Sex { get; set; }
        public int Age { get; set; }
    }

创建用户信息验证器  

public class UserInformationValidator : AbstractValidator<UserInformation>
    {
        public UserInformationValidator()
        {
            RuleFor(o => o.Name).NotEmpty().WithMessage("姓名不能为空").Length(2,20).WithMessage("姓名长度输入错误");
            RuleFor(o => o.Sex).NotEmpty().WithMessage("性别输入错误");
            RuleFor(o => o.Age).GreaterThanOrEqualTo(0).WithMessage("年龄请输入整数")
                .ExclusiveBetween(0, 200).WithMessage("年龄输入错误");




        }
     }

 里面写了三个验证方法,

当姓名为空的时候,提示姓名不能为空

当姓名长度不等于2——20的时候提示姓名长度输入错误

当性别为空的时候体术性别输入错误

年龄只能输入整数且年龄范围在0到200;

测试代码,一共写了两种。

 测试一是用户属性全部没有赋值来验证 ;

 测试二是验证用户姓名过长;

static void Main(string[] args)
        {
            UserInformationValidator validationRules = new UserInformationValidator();
            //测试1
            UserInformation userInformation = new UserInformation();
             var result=   validationRules.Validate(userInformation);
            var errors = string.Join(Environment.NewLine, result.Errors.Select(x => x.ErrorMessage).ToArray());
            Console.WriteLine(errors);
            //测试2
            UserInformation userInformation2 = new UserInformation();
            userInformation2.Name = "黑哥聊编程hahahahahahahahahahahahahahah";
            userInformation2.Age = 10;
            userInformation2.Sex = "男";
            var result2 = validationRules.Validate(userInformation2);
            var errors2 = string.Join(Environment.NewLine, result2.Errors.Select(x => x.ErrorMessage).ToArray());
            Console.WriteLine(errors2);
            Console.ReadLine();
        }

我们看一下输出结果

0b7b7dfe295388e33b941fa10b1bf99d.png

结果表明没有问题 。

大家快去下载试试吧!

最后大家如果喜欢我的文章,还麻烦给个关注,我将会持续输出,走过路过不要错过哈,最后希望net生态圈越来越好!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值