【问题标题】:How can I create a RuleSet with a .NET FluentValidation InlineValidator?如何使用 .NET FluentValidation InlineValidator 创建 RuleSet?
【发布时间】:2016-01-08 04:07:43
【问题描述】:

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

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

当我尝试在那里调用 RuleSet 方法时,它似乎无法编译。

请问如何针对InlineValidator 创建规则集?

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

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

【问题讨论】:

    标签: c# .net action fluentvalidation


    【解决方案1】:

    您不能以全局方法访问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
    

    【讨论】:

      猜你喜欢
      • 2020-05-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-02
      • 2023-04-11
      • 1970-01-01
      • 1970-01-01
      • 2011-09-21
      相关资源
      最近更新 更多