SuperAPI AI 工具集

fluent-validation

编程与开发

查看项目

更新于 10-16 09:52

技能介绍

用途:在 .NET 整洁架构项目的 Application 层为命令(Command)与查询(Query)生成 FluentValidation 验证器,把验证逻辑与领域分离,并通过 MediatR 管道行为自动触发验证。

主要能力:

  • 内置规则:NotEmpty、NotNull、Length、MinimumLength、MaximumLength、Matches、EmailAddress、CreditCard、Equal、NotEqual 等字符串校验;GreaterThan、LessThan、InclusiveBetween、ExclusiveBetween、PrecisionScale 等数值校验;集合的 NotEmpty、Must、ForEach。
  • 自定义验证器:继承 PropertyValidator 并通过扩展方法以流式方式复用。
  • 异步验证:MustAsync 执行数据库唯一性或存在性检查。
  • 嵌套与集合:SetValidator 校验子对象,RuleForEach 配合 ChildRules 校验列表项。
  • 条件验证:When、Unless,以及跨属性比较(如 GreaterThan(x => x.StartDate))。

使用方式:验证器可独立放在 Create{Entity}CommandValidator.cs,也可与 Command 同文件内联(内部类,推荐做法)。仓储等依赖通过构造函数注入,命令处理器与验证器通常同命名空间。文件组织建议按功能目录存放,通用验证器置于 Validators 目录。

适用场景:需要强类型、可读、可维护验证规则的 .NET 后端项目,尤其配合 MediatR 使用命令/查询模式的应用。

限制:资料建议存在性等检查尽量放在 Handler 而非验证器,以保持关注点分离与可测试性;异步验证应谨慎使用,避免过多数据库往返。文档未说明包版本、安装命令与配置细节,暂未提供。