← Назад в блог
C# FluentValidation: кастомные валидаторы с динамическими сообщениями об ошибках
- Опубликовано
- • 1 мин чтения•--- просмотров
Ссылка на проект: [FluentValidation Custom Validators]
Полезная статья, если хочешь кастомизировать свою валидацию (например, привязать параметры к сообщению об ошибке): [ссылка]
Вот пример кастомного валидатора с сообщениями об ошибках, использующими привязку параметров (спасибо пользователю danludwig), из этого поста на StackOverflow: [ссылка]
public class IsProcessFileValid : PropertyValidator
{
public IsProcessFileValid(): base({ValidationMessage}) {}
protected override IsValid(PropertyValidatorContext context)
{
if (!IsProcessFileValid1(context))
context.MessageFormatter.AppendArgument(ValidationMessage,
Custom validation message #1);
if (!IsProcessFileValid2(context))
context.MessageFormatter.AppendArgument(ValidationMessage,
Custom validation message #2);
// ...etc
return true;
}
private bool IsProcessFileValid1(PropertyValidatorContext context)
{
// logic
return false;
}
private bool IsProcessFileValid2(PropertyValidatorContext context)
{
// logic
return false;
}
// ...etc
}
public static class IsProcessFileValidExtensions
{
public static IRuleBuilderOptions<T, object> MustBeValidProcessFile<T>
(this IRuleBuilder<T, object> ruleBuilder)
{
return ruleBuilder.SetValidator(new IsProcessFileValid());
}
}
public CreateProcessValidator()
{
RuleFor(x => x.ProcessFile).MustBeValidProcessFile();
}
Содержание
Открыт для работы по контракту
Я доступен для работы по контракту. Если у вас есть интересная идея проекта — запишитесь на звонок через Calendly.
Записаться на 30-минутный звонок