开源博客项目Blog .NET使用FluentValidation模块定义数据验证项,具体而言,是在App.Application项目定义验证类,设置验证规则,同时在App.Framwork项目基于FluentValidation.AspNetCore设置ASP.NET验证管道自动验证
  App.Application项目中总共定义了六个验证类,使用的都是FluentValidation内置的验证类,详细说明如下:

序号 验证名称 验证对象 命名空间 使用的验证方式
1 ArticleValidator ArticleInputDto App.Application.Blog.Validators 1)NotEmpty,非empty验证;
2)Length,字符串长度范围验证;
3)NotNull,非null验证;
4)Must,自定义验证,本类中主要验证集合属性必须包含元素
2 LeavemsgValidator CommentInputDto App.Application.Blog.Validators 1)NotEmpty,非empty验证;
2)MaximumLength字符串最大长度验证。
3 NoticeValidator NoticeInputDto App.Application.Blog.Validators 1)NotEmpty,非empty验证;
2)MaximumLength字符串最大长度验证。
4 ReplyValidator ReplyInputDto App.Application.Blog.Validators 1)NotEmpty,非empty验证;
2)MaximumLength字符串最大长度验证;
3)NotEqual,验证属性不等于指定内容
5 TagsValidator TagsInputDto App.Application.Blog.Validators 1)NotEmpty,非empty验证;
2)MaximumLength字符串最大长度验证。
6 SysPermissionValidator SysPermissionInputDto App.Application.SysManager.Validators 1)NotEmpty,非empty验证;
2)Must,自定义验证,本类中主要验证集合属性必须包含元素

  App.Framwork项目命名空间App.Framwork.DataValidation.Extensions中定义扩展函数AddValidation,在该函数中主要实现三方面的功能
  1)设置启用基于ASP.NET验证管道自动验证,主要是调用FluentValidation.AspNetCore中的FluentValidationMvcExtensions.AddFluentValidation扩展函数实现
  2)遍历所有程序集中的验证类并注册项目中通过查找程序集中所有派生自IValidator接口的非抽象类获取所有验证类,然后调用TryAddTransient逐个注册验证类。根据前一篇文章介绍,其实可以引用FluentValidation.DependencyInjectionExtensions包,然后调用AddValidatorsFromAssemblyContaining函数自动枚举注册验证类;
  3)设置加入全局过滤器,所有设置了IgnoreValidationAttribute特性的函数均忽略验证。

  最后在App.Hosting项目的Program文件调用扩展函数AddValidation启用自动验证、注册验证类。

参考文献:
[1]https://gitee.com/miss_you/Blog
[2]https://www.donet5.com/Home/Doc
[3]https://docs.fluentvalidation.net/en/latest/index.html#

原文地址:https://blog.csdn.net/gc_2299/article/details/134452612

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。

如若转载,请注明出处:http://www.7code.cn/show_8927.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注