我有一个MVC应用程序,每个视图模型有很多 public class reverse{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
System.out.println("enter string");
String s = sc.nextLine();
String [] words = s.split(" "); // space for words
for(int i = words.length - 1; i >= 0; i--)
{
System.out.print(words[i] + " ");
}
}
}
个。这是设计原因,因为我使用AbstractValidator<T>
注入查询以访问我们的数据库,并且我不想在一个验证器中使用构造函数注入。我创建了下面的类,它是每个视图模型的验证器,但它不调用我的SimpleInjector
和其他自定义验证规则,只调用简单规则。任何帮助将不胜感激。谢谢。
When
以下是两个验证器的示例
public class CompositeValidator<T> : AbstractValidator<T>
{
private ICollection<IValidator> _validators = new List<IValidator>();
public CompositeValidator(IEnumerable<IValidator<T>> validators = null)
{
if (validators == null) return;
foreach (var validator in validators)
{
_validators.Add(validator);
var enumerator = validator.GetEnumerator();
while (enumerator.MoveNext())
{
AddRule(enumerator.Current);
}
}
}
public override ValidationResult Validate(ValidationContext<T> context)
{
var errorsFromOtherValidators = _validators.SelectMany(x => x.Validate(context).Errors);
return new ValidationResult(errorsFromOtherValidators );
}
}
答案 0 :(得分:0)
这实际上有效。我发现了一个我忘记的验证拦截器没有触发我的验证。