FluentValidation isInEnum 不验证第一项

FluentValidator isInEnum Not validate for first item

我有一个流利的验证器:

 public MyValidator()
        {
            RuleFor(t => t.Gender)
                .IsInEnum()
                .NotEmpty();
            //...
        }

性别是枚举类型

public enum Gender
  {
    NotSpecified,
    Male,
    Female,
  }

所有枚举值的测试方法

[Theory]
[InlineData(Gender.NotSpecified)]
[InlineData(Gender.Female)]
[InlineData(Gender.Male)]
public void WhenGenderIsInEnum_ShouldValidate(Gender gender)
{
    // Arrange
    var model = new MyObject {Gender = gender};

    // Act
    var result = _validator.TestValidate(model);

    // Assert
    result
        .ShouldNotHaveValidationErrorFor(s => s.Gender);
}

男性和女性的测试都可以,但是对于第一个项目 'NotSpecified' 它 return 一个错误

Validation Errors:
[0]: 'Gender' must not be empty.

有什么想法吗?

可能是因为 NotSpecified 枚举被自动分配值 0 并且流畅的验证器检查 value == default

尝试将值类型更改为可为空。