C# 未执行规则集中的FluentValidation验证器
我有一个带有规则集的验证器C# 未执行规则集中的FluentValidation验证器,c#,.net,validation,fluentvalidation,C#,.net,Validation,Fluentvalidation,我有一个带有规则集的验证器 public class ApplicationValidator : AbstractValidator<Application> { public ApplicationValidator() { RuleSet("CreateApplication", () => { RuleFor(a => a.SalesChannelBroker)
public class ApplicationValidator : AbstractValidator<Application>
{
public ApplicationValidator()
{
RuleSet("CreateApplication", () =>
{
RuleFor(a => a.SalesChannelBroker)
.SetValidator(new BrokerActiveRule());
RuleFor(ld => ld.LoanDetailSegment)
.SetValidator(new ProductCodeValidRule());
});
}
}
您的
BrokerActiveRule
和ProductCodeValidRule
验证器是什么样子的?
它们中的规则是否在CreateApplication
规则集中定义
如果它们不在规则集中,或者不在CreateApplication
以外的规则集中,则不会调用它们
我仍然觉得子验证器的行为有点奇怪,但基本上,如果您使用规则集调用父验证器,并且希望调用子验证器,则包含(SetValidator
在本例中)必须在规则集中,和要应用的子验证程序规则也必须在该规则集中
有关更多信息,请参阅
可以通过创建自己的IValidatorSelector
自定义此行为。这是我正在考虑做的事情(但还没来得及做),因为我有一个案例,其中子验证器有默认的和规则集特定的规则,这意味着我必须在父验证器中包含两次子验证器
// Validate
var validationResult = new ApplicationValidator().Validate(app, ruleSet: "CreateApplication");