博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
模型验证组件——FluentValidation
阅读量:6513 次
发布时间:2019-06-24

本文共 1436 字,大约阅读时间需要 4 分钟。

之前在博客园有幸从网友那里得知一个C#的模型验证组件(哈 不知道这样表述正确不),组件的功能比较简单,主要是实现了对Model的验证,例如验证用户名是否为空,密码长度是不是多余6个字符,当然还有其他更加灵活的的验证方法。这里介绍给大家知道一下!

该组件的名称叫“FluentValidation”,顾名思义——“流畅验证”(- -!)。 下面看一段官方网站上面给出的代码就知道为什么“流畅”了。代码如下:

 
 
using FluentValidation;public class CustomerValidator: AbstractValidator
{ public CustomerValidator() { RuleFor(customer => customer.Surname).NotEmpty(); RuleFor(customer => customer.Forename).NotEmpty().WithMessage("Please specify a first name"); RuleFor(customer => customer.Company).NotNull(); RuleFor(customer => customer.Discount).NotEqual(0).When(customer => customer.HasDiscount); RuleFor(customer => customer.Address).Length(20, 250); RuleFor(customer => customer.Postcode).Must(BeAValidPostcode).WithMessage("Please specify a valid postcode"); } private bool BeAValidPostcode(string postcode) { // custom postcode validating logic goes here }}Customer customer = new Customer();CustomerValidator validator = new CustomerValidator();ValidationResult results = validator.Validate(customer);bool validationSucceeded = results.IsValid;IList
failures = results.Errors;
如果使用过ASP.NET MVC2.0或者以上版本的同学应该对这种代码觉得很熟悉^—^

目前该组件到了2.0版本,感觉我知道的比较晚了,下面给出相关链接:

  • FluentValidation首页地址:
  • FluentValidation下载地址:
  • FluentValidation文档地址:

    文档不多不过写得比较详细,组件的可扩展性也比较强!一个优秀的组件最大的特点就是功能走接口,扩展靠继承,FluentValidation很华丽地做到这一点!在多层结构的项目中FluentValidation可以很好地并且方便地对模型传参进行差错校验,不止可以减少代码量,重要的一点是统一了代码风格!

转载地址:http://eeifo.baihongyu.com/

你可能感兴趣的文章
多线程问题(JVM重排序)
查看>>
LeetCode 459 Repeated Substring Pattern
查看>>
POJ 3268 Silver Cow Party
查看>>
EMLS项目推进思考
查看>>
Eclipse快捷键 10个最有用的快捷键
查看>>
2018-2019-1 20165302 实验五 通讯协议设计
查看>>
Golang 知识点总结
查看>>
JAVA 8 特性
查看>>
算法设计 - LCS 最长公共子序列&&最长公共子串 &&LIS 最长递增子序列
查看>>
WebService之Axis2快速入门(7): Spring与axis整合发布为WebServic
查看>>
Uliweb查看模板调用关系
查看>>
C#与PHP通信压缩
查看>>
关于 Linux
查看>>
图文解析五大外链误区
查看>>
ios开发之导航控制器的原理
查看>>
《Netkiller Blockchain 手札》Hyperledger Fabric Java SDK Demo
查看>>
Spring cloud 安全部署与性能优化
查看>>
querySelector 和 querySelectorAll区别
查看>>
Linux系统_Centos7下安装Nginx
查看>>
《PHP和MySQL Web 开发》 第12章 MySQL高级管理
查看>>