我正在创建一个InlineValidator(来自FluentValidation nuget包/库)。

var validator = new InlineValidator<Person>;
validator.RuleFor(x => x.Surname).NotNull();
validator.RuleSet("someRuleSet", () => {
    // ?????
            });


当我尝试在其中调用RuleSet方法时,似乎无法编译。

我该如何针对InlineValidator创建RuleSet?

这是我正在尝试的示例规则集...

.RuleSet("someRuleSet", () =>
{
    RuleFor(x => x.Name).NotNull();
    RuleFor(x => x.Age).NotEqual(0);
}

最佳答案

您不能作为全局方法访问RuleFor,它位于InlineValidator上。这是如何添加RuleSet然后对其进行验证的示例:

// Setup the inline validator and ruleset
var validator = new InlineValidator<Person>();

validator.RuleSet("test", () =>
{
    validator.RuleFor(x => x.Name).NotNull();
    validator.RuleFor(x => x.Age).NotEqual(0);
});

var person = new Person();

// Validate against the RuleSet specified above
var validationResult = validator.Validate(person, ruleSet: "test");

Console.WriteLine(validationResult .IsValid); // Prints False

关于c# - 如何使用.NET FluentValidation InlineValidator创建RuleSet?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34669322/

10-16 09:38