我是流利验证的新手,刚从nu Get昨天获得版本5.3 。我正在尝试将现有验证器(PhoneValidator)应用于类(Employee)的集合属性(ICollection)。 Fluent Validator文档说要使用:
RuleFor(x => x.Orders).SetCollectionValidator(new OrderValidator()); // example usage
然而, SetCollectionValidator()方法在我的版本上不可用。相反,只有 SetValidator()标记为 [已弃用] 。我已经看到有关同样情况的其他帖子,并且已经了解到SetCollectionValidator()是一个扩展方法,需要确保我已导入FluentValidation。我做。
我在这里缺少什么?
using FluentValidation;
using FluentValidation.Validators;
public class EmployeeValidator : AbstractValidator<Employee>
{
public EmployeeValidator()
{
// SetCollectionValidator doesn't show in intellisense and won't compile
RuleFor(e => e.PhoneNumbers).SetCollectionValidator(new PhoneValidator());
}
}
public class PhoneValidator : AbstractValidator<Phone>
{
public PhoneValidator()
{
RuleFor(e => e.Number).Length(10).Matches("^[0-9]$");
}
}
答案 0 :(得分:8)
我来晚了,但这是谷歌的第一次打击所以我认为它可以帮助别人。似乎API已经改变,你现在需要做:
RuleForEach(e => e.PhoneNumbers).SetValidator(new PhoneValidator());
我认为更好一点。