我有一个模型类:
public class MyModel() { //properties here... }
我想要验证一个MyModel
对象的列表。因此我创建了这个验证器:
class MyModelListValidator : AbstractValidator<List<MyModel>>
{
public MyModelListValidator ()
{
RuleFor(x => x)
.SetCollectionValidator(new MyModelValidator())
.When(x => x != null);
}
private class MyModelValidator : AbstractValidator<MyModel>
{
public MyModelValidator()
{
//MyModel property validation here...
}
}
}
但是上面的方法不起作用。一个替代方案是创建一个类,例如:
public class MyModelList()
{
public List<MyModel> Items { get; set; }
}
这样也可以实现。但是有没有一种不使用额外类的方法呢?
List<MyModel>
作为参数,您可以定义AbstractValidator<MyModel>
,fluentvalidation 将自动将其应用于列表中的每个项目。 - Aleksey L.