#c# #validation #fluentvalidation
#c# #проверка #fluentvalidation
Вопрос:
Я хочу запустить метод, если метод fluent validation завершится неудачей.
RuleFor(x => x.SheepName)
.Must(x => x.SheepName == null)
.When(x => x.HasSheep == false)
.Otherwise(callMethod());
Итак, в этом случае, если значение HasSheep равно false, но по-прежнему задано SheepName, то я хочу запустить метод (в примере метод называется ‘callMethod()’).
Я составил .Оператор Otherwise, поэтому ищем, какой должна быть вся эта строка ‘.В противном случае(callMethod());’..
Ответ №1:
Вы ищете OnFailure(…)
, задокументированный здесь
Вы можете использовать обратные вызовы OnAnyFailure и OnFailure (начиная с версии 8.0) для запуска метода в случае сбоя проверки.
RuleFor(x => x.SheepName)
.Must(x => x.SheepName == null)
.When(x => x.HasSheep == false)
.OnFailure(x => callMethod());
Комментарии:
1. Начиная с версии 11, OnFailure устарел. Интересно, как справиться с этим без сбоя.
2. @coolcake вероятно, вам следует опубликовать новый вопрос