.NET 8中使用开源验证组件FluentValidation,验证就这么简单

共 3967字,需浏览 8分钟

 ·

2024-04-10 16:41


FluentValidation简介

    FluentValidation 是 .NET 的开源验证库,它是使用 Fluent 接口的 .NET 验证库,以及可以lambda 表达式来构建强类型验证规则的 ,这样可以让开发人员以清晰简洁的方式表达验证逻辑,使其易于读取、编写和维护。在github有8.6k的Star,还是不错的.NET开源组件。 github地址 :github.com/FluentValidation/FluentValidation 文档地址 :docs.fluentvalidation.net

在.NET 8中使用FluentValidation


FluentValidation更新也比较快,同步支持.NET 8。下面将介绍在.NET 8中使用步骤。


1、安装 FluentValidation的NuGet 包


新建一个.NET 8控制台项目,使用nuget包管理器搜索FluentValidation安装或者用如下nuget控制台命令安装。


      
dotnet add package FluentValidation


2、新建一个客户测试模型来做验证


客户测试模型有姓名,地址,邮编等,如下:


      
public class Customer


{


public string Name { get; set; }


public string Address { get; set; }


public string Postcode { get; set; }


public int Discount { get; set; }


public string Email { get; set; }


public int age { get; set; }


public bool disDiscount { get; set; }


}


3、使用 FluentValidation来验证


新建一个验证类,继承泛型接口AbstractValidator,并在这个类中写验证规则。代码如下:


      
public class CustomerValidator : AbstractValidator<Customer>


{


public CustomerValidator()


{


RuleFor(x => x.Name).NotEmpty().WithMessage("姓名不能为空");//判断为空


//不允许等于0。该规则还包含一个条件,即只有当disDiscount属性为真时才生效。


RuleFor(x => x.Discount).NotEqual(0).When(x => x.disDiscount);


RuleFor(x => x.Address).Length(20, 250);//长度


            //自定义验证


RuleFor(x => x.Postcode).Must(BeAValidPostcode).WithMessage("请输入邮政编码");


           //验证邮箱


RuleFor(x => x.Email).EmailAddress().WithMessage("请输入正确的邮箱");


        }


private bool BeAValidPostcode(string postcode)


{


return true;


// 自定义规则


}


}


4、调用规则


在main方法中模拟调用。


      
static void Main(string[] args)


{


var customer = new Customer();


customer.Name = "张山";


customer.Email = "aaa";


         var validator = new CustomerValidator();


// 验证规则


         ValidationResult results = validator.Validate(customer);


// 验证结果是否通过


bool success = results.IsValid;


//返回当前错误信息


         List<ValidationFailure> failures = results.Errors;


}


上面是个调用的demo,需要验证的话可以用results.IsValid来进行条件判断,并写验证通过逻辑。


5、效果如下:


afe2efd2d8537da4d3078f954412d7a4.webp


上面邮箱输入错误,结果会返回false,并提示邮箱错误。这样通过上面4步骤,一个简单的客户验证就做好了。


结语


本文介绍了在.NET 8 中的 FluentValidation组件的步骤,FluentValidation 提供了一种干净且富有表现力的方式来处理应用程序中的验证。上面的示例所示,使用 FluentValidation 可以将验证逻辑与业务逻辑分开,从而增加代码的维护性和可读性。


希望本文对大家有所收获,大家对开源的FluentValidation组件有什么看法,前端如果有验证过程,后端还有必要验证吗?FluentValidation还有亿元吗?欢迎留言讨论或吐槽。






    

关注公众号DotNet开发跳槽    


浏览 17
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报