Этот вопрос довольно старый, но я наткнулся на тот же вопрос.Я хотел, чтобы беглый валидатор проверил его для меня, если он пуст, и сказал так, а не выбрасывал исключение, вместо того, чтобы я явно проверял это.Я нашел решение переопределения существующих методов, например:
public class MyValidator : AbstractValidator<MyObject>
{
public MyValidator()
{
RuleSet("MyRule", () =>
{
RuleFor(x=>x.MyProperty=="Something").WithMessage("failed");
});
}
public override Task<ValidationResult> ValidateAsync(ValidationContext<MyObjec>> context, CancellationToken cancellation = default)
{
return context.InstanceToValidate == null ? Task.FromResult(new ValidationResult(new[] { new ValidationFailure("MyObject", "filed with null") })) : base.ValidateAsync(context, cancellation);
}
}