2016-01-08 63 views
2

我正在創建一個InlineValidator(來自FluentValidation nuget包/庫)。如何使用.NET FluentValidation InlineValidator創建RuleSet?

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); 
} 

回答

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 
相關問題