Fluentvalidation 多个可能值的验证器

Fluentvalidation Validator for multiple possible values

Fluentvalidation 是否有任何内置函数来验证 pass/fail 的多个可能选项,类似于 SQL In operator ?

例如:在下面的代码中,我需要确保 user_status 必须是 ("Active", "Expired", "Blocked"...... ...) 等等

而对于 user_role 应该是 user_role("admin", "manager", "viewer"......)

public class Users
    {

        public string user_status { get; set; }
        public string user_role { get; set; }

    }

    public class UpdateUserValidator : NullReferenceAbstractValidator<Users>
    {
        public UpdateUserValidator()
        {
            RuleFor(user => user.user_status).NotNull();

        }       
    }

据我所知,没有内置验证器执行此操作。

您可以使用 .Must 和一组可接受的值。

类似的东西(当然,接受值的集合可以在一个变量中,并用于must和message部分)。

RuleFor(x =>x.user_status)
.Must(x => new[]{"Active", "Expired", "Blocked"}.Contains(x))
.WithMessage("User status should be  either 'active', 'expired' or 'blocked'");

或者您当然可以创建自己的自定义验证器。