У меня есть класс Dad
и класс Kid
, оба реализовали интерфейс IValidatableObject.
Я ищу способ автоматически отлавливать ошибки валидации Kid при использовании валидатораПапа.
public class Dad : IValidatableObject
{
public long Id { get; set; }
[Required]
public Kid Kid { get; set; }
public int Height { get; set; }
public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
{
if (Height <= 190)
yield return new ValidationResult("Adults need to be taller than 190cm.")
}
}
public class Kid : IValidatableObject
{
public long Id { get; set; }
public int Height { get; set; } = 180;
public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
{
if (Height <= 170)
yield return new ValidationResult("Kids need to be taller than 170cm.")
}
}
Контроллер:
var dad= _context.Dads.Find(100);
dad.Height = 100;
dad.Kid.Height = 100;
List<ValidationResult> Errors = new List<ValidationResult>();
bool IsValid = Validator.TryValidateObject(dad, new ValidationContext(dad, serviceProvider: null, items: null), Errors);
// Errors will not contain the Kids' height validation result...