У меня есть класс, который повторно используется в нескольких местах. К нему применен валидатор по умолчанию, который имеет следующий атрибут: [Validator (typeof (ChildValidator))].Свободная проверка Валидация объекта Vary в соответствии с классом, который используется в
Я хотел бы переопределить валидатор, примененный к классу Child, в зависимости от используемого родительского класса. Ниже приведена упрощенная версия моей модели. Поэтому вместо проверки Child с ChildValidator я хочу применить правила в ChildValidator2. Это можно сделать?
Примечание: код последующих всегда будет терпеть неудачу проверку, потому что он всегда будет применять правила в 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 «Не грози южному централу, попивая сок в капот" :) –