开源博客项目Blog.NETCore源码学习(7:FluentValidation使用浅析)
- 互联网
- 2025-07-21 19:26:50

开源博客项目Blog .NET使用FluentValidation模块定义数据验证项,具体而言,是在App.Application项目中定义验证类,设置验证规则,同时在App.Framwork项目中基于FluentValidation.AspNetCore包设置ASP.NET验证管道自动验证。 App.Application项目中总共定义了六个验证类,使用的都是FluentValidation内置的验证类,详细说明如下:
序号验证类名称验证对象类命名空间使用的验证方式1ArticleValidatorArticleInputDtoApp.Application.Blog.Validators1)NotEmpty,非empty验证;2)Length,字符串长度范围验证;3)NotNull,非null验证;4)Must,自定义验证,本类中主要验证集合属性必须包含元素。2LeavemsgValidatorCommentInputDtoApp.Application.Blog.Validators1)NotEmpty,非empty验证;2)MaximumLength,字符串最大长度验证。3NoticeValidatorNoticeInputDtoApp.Application.Blog.Validators1)NotEmpty,非empty验证;2)MaximumLength,字符串最大长度验证。4ReplyValidatorReplyInputDtoApp.Application.Blog.Validators1)NotEmpty,非empty验证;2)MaximumLength,字符串最大长度验证;3)NotEqual,验证属性不等于指定内容。5TagsValidatorTagsInputDtoApp.Application.Blog.Validators1)NotEmpty,非empty验证;2)MaximumLength,字符串最大长度验证。6SysPermissionValidatorSysPermissionInputDtoApp.Application.SysManager.Validators1)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] gitee /miss_you/Blog [2] .donet5 /Home/Doc [3] docs.fluentvalidation.net/en/latest/index.html#
开源博客项目Blog.NETCore源码学习(7:FluentValidation使用浅析)由讯客互联互联网栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“开源博客项目Blog.NETCore源码学习(7:FluentValidation使用浅析)”
下一篇
番外篇之通讯录