FluentValidation 包含 Including rules

有时候我们的Model可能很大,我们想分开来写验证器,然后验证的时候又把它们包括在一起。 Include 就可以达到这个效果。 如下面的代码 我们有一个Model Person 我们给它们写了两个验证器

public class PersonAgeValidator : AbstractValidator<Person>  
{
  public PersonAgeValidator() 
  {
    RuleFor(x => x.DateOfBirth).Must(BeOver18);
  }

  protected bool BeOver18(DateTime date) 
  {
    //...
  }
}

public class PersonNameValidator : AbstractValidator<Person> 
{
  public PersonNameValidator() 
  {
    RuleFor(x => x.Surname).NotNull().Length(0, 255);
    RuleFor(x => x.Forename).NotNull().Length(0, 255);
  }
}

在验证的时候我们想只用一个验证器这个时候可以写成如下的代码

public class PersonValidator : AbstractValidator<Person> 
{
  public PersonValidator() 
  {
    Include(new PersonAgeValidator());
    Include(new PersonNameValidator());
  }
}

需要注意的是 这三个验证器都是验证同一个Person类

最近更新的
...