Приведенный ниже код не дает мне ошибки. Поле «isContinuous» является обязательным.
public class Bond
{
public bool isContinuous { get; set; }
}
public class BondValidator : AbstractValidator<Bond>
{
public BondValidator()
{
RuleFor(model => model.isContinuous).NotNull().WithMessage("'is Continous' is required field.").Must(x => x == false || x == true);
}
}
bool
— это тип значения, он всегда не нулевой. Один из вариантов — изменить тип на значение, допускающее значение NULL — bool?
:
public class Bond
{
public bool? isContinuous { get; set; }
}
Тогда нулевая проверка будет иметь смысл.
В качестве альтернативы вы можете попробовать использовать обязательный модификатор (доступен, начиная с C# 11), но это должно привести к ошибке на уровне связывателя/десериализатора перед проверкой Fluent.
Читать далее:
Ваше решение было четким, спасибо