2016-01-08 2 views
2

Я создаю InlineValidator (из пакета/библиотеки FluentValidation nuget).Как создать RuleSet с .NET FluentValidation InlineValidator?

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

Когда я пытаюсь вызвать метод RuleSet, он, кажется, не компилируется.

Как я могу создать RuleSet против InlineValidator, пожалуйста?

Вот пример набора правил я пытаюсь ...

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

ответ

2

Вы не можете получить доступ к 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 
Смежные вопросы