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

Posted dotNET跨平台

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了FluentValidation在C#中是怎么进行数据验证的相关的知识,希望对你有一定的参考价值。

介绍

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

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

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

安装

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

Framework 安装FluentValidation版本

core安装FluentValidation.AspNetCore版本

测试

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

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();
        

我们看一下输出结果

结果表明没有问题 。

大家快去下载试试吧!

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

以上是关于FluentValidation在C#中是怎么进行数据验证的的主要内容,如果未能解决你的问题,请参考以下文章

更简洁的参数校验,使用 FluentValidation 对参数进行校验

在对话框中使用 FluentValidation 和 MudBlazor 进行表单验证

使用 FluentValidation 如何在控制器中使用 validationContext 进行测试

请问啥是数据管道,在c#中是怎么具体应用的?

使用 FluentValidation 在一条规则中进行多重验证

在 .NET 中使用 FluentValidation 进行参数验证