Как использовать вычисленное свойство в быстрой проверке

В настоящее время я использую dto, который имеет несколько полей, как показано ниже:

public class Person
{
   public string FirstName { get; set; }
   public string LastName { get; set; } 
   //Other properties
}

У меня есть свободный валидатор вышеупомянутого dto.

У меня вопрос, как мне добавить условную проверку для вышеупомянутого FirstName а также LastName свойства одни. Проверка должна быть основана на boolean имущество (IsEnabled), который получается из вызова API.

Мне нужно что-то вроде

public class PersonValidator
{
    When(profileAdd => {**IsEnabled**}, () =>
    {
       //Validations for first name and last name
    }
}

Я прочитал из GitHub, что параметры не могут быть переданы в валидаторы. Итак, как мне этого добиться?

1 ответ

Вы можете попробовать это:

        When(x => IsEnabled, () => {
            // validation for first and last name
        });

или это:

RuleFor(person => person.FirstName).SetValidator(new YourCustomValidatior()).When(x => isEnabled);
RuleFor(person => person.LastName).SetValidator(new YourCustomValidatior()).When(x => isEnabled);

где "YourCustomValidator" проверит вашу собственность. Узнайте больше о настраиваемой форме валидатора здесь. ( https://fluentvalidation.net/custom-validators)

Вы также можете использовать встроенные валидаторы. ( https://fluentvalidation.net/built-in-validators)

Другие вопросы по тегам