问题描述
我有两个验证器来验证同一类型:
public class Foo {
public int Prop1 { get; set; }
public int Prop2 { get; set; }
}
public class Foovalidator1 : AbstractValidator<Foo> {
public Foovalidator1() {
RuleFor(x => x.Prop1).NotNull();
}
}
public class Foovalidator2 : AbstractValidator<Foo> {
public Foovalidator2() {
RuleFor(x => x.Prop1).NotNull();
RuleFor(x => x.Prop2).NotNull();
}
}
public class Bar {
public Foo Foo { get; set; }
}
public class BarValidator : AbstractValidator<Bar> {
public BarValidator() {
RuleFor(x => x.Foo).SetValidator(new Foovalidator1());
}
}
Fluentvalidation配置为在MVC管道中进行验证:
internal static void Cofigure(FluentValidationMvcConfiguration config) {
config.RegisterValidatorsFromAssemblyContaining<Foovalidator>();
config.RunDefaultMvcValidationAfterFluentValidationExecutes = false;
config.ValidatorFactoryType = typeof(HttpContextServiceProviderValidatorFactory);
}
Swagger配置为显示fluentvalidation规则:
config.AddFluentValidationRules();
但是出于某种原因,应用了另一条规则的验证:
如果我删除Foovalidator2,则将应用正确的验证器。 我在做错什么吗?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)