用途:在 .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 而非验证器,以保持关注点分离与可测试性;异步验证应谨慎使用,避免过多数据库往返。文档未说明包版本、安装命令与配置细节,暂未提供。