2016-08-03 7 views
0

общественный bool IsDefault {get; задавать; }FluentValidation: как сделать bool как обязательное поле с 'false' как допустимый ввод?

RuleFor (stockImage => stockImage.IsDefault) .NotNull();

У меня есть это правило, что логическое свойство IsDefault должно быть не null. Проблема в том, что клиент не передает это поле при попадании в api, «IsDefault» получает значение по умолчанию boolean как false и не дает никаких ошибок, например «Это поле необходимо».

Как я могу создать это поле, если требуется, с «истинным» или «ложным» в качестве его единственных допустимых значений?

Одно из решений я попытался было сделать это:

RuleFor (stockImage => stockImage.IsDefault) .NotEmpty();

Проблема заключается в том, что она дает ошибку проверки, когда «IsDefault» является «ложным», что не ожидается в случае использования.

ответ

4

Вы можете использовать bool? (Nullable<bool>) тип, который может быть null, и значение по умолчанию будет null.

-1

Просто объявить перечисление под названием booleanType с полями {лжи, правда, NULL}

Используйте новый тип вместо типа С # Его первоначально установлен в нулевом значение.

+0

https://thedailywtf.com/articles/What_Is_Truth_0x3f_ – OffHeGoes

0

Вы могли бы использовать это:

RuleFor(stockImage => stockImage.IsDefault).Must(x => x == false || x == true) 

из C# точки зрения не имеет смысла, так как значение BOOL всегда быть истинным или ложным, но если данные поступают из API, значение может быть ничего другого, как '' или null, и вам не нужно менять свою модель.

 Смежные вопросы

  • Нет связанных вопросов^_^