Как вызвать метод после ошибки беглой проверки

#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 вероятно, вам следует опубликовать новый вопрос