1
我有一个类可以在多个地方重用。它有一个应用于它的默认验证器,它具有以下属性[Validator(typeof(ChildValidator))]。流利的验证根据它使用的类中的不同对象验证器
我想重写应用于Child类的验证器,具体取决于正在使用它的父类。以下是我的模型的简化版本。因此,我想在ChildValidator2中应用规则,而不是使用ChildValidator验证Child。这可以做到吗?
注:后续代码总是会失败的验证,因为它总是在ChildValidator应用规则
型号:
[Validator(typeof(ParentValidator))]
public class Parent
{
public bool IgnoreChild { get; set; }
public DateTime Birthdate { get; set; }
public Child Children { get; set; }
}
[Validator(typeof(ChildValidator))]
public class Child
{
public string ChildProperty{ get; set; }
public DateTime Birthdate { get; set; }
}
校验:
public class ParentValidator : AbstractValidator<Parent>
{
public ParentValidator()
{
RuleFor(model => model.Name).NotEmpty();
When(x=>x.IgnoreChild,() =>
{
RuleForEach(model => model.Child).SetValidator(new ChildValidator2());
});
}
}
public class ChildValidator : AbstractValidator<Child>
{
public ChildValidator()
{
RuleFor(model => model.ChildProperty).NotEmpty();
//Compare birthday to make sure date is < Parents birthday
}
}
public class ChildValidator2 : AbstractValidator<Child>
{
public ChildValidator2()
{
RuleFor(model => model.ChildProperty).Empty();
}
}
“比较的生日,以确保日期是<父母的生日” remided“不要成为一个威胁到中南部,而喝果汁您在胡德“:) –