有时候我们的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类