FluentValidation涉及要验证的对象中的2个属性

时间:2017-11-07 16:24:28

标签: c# .net fluentvalidation

我的商家规则规定PropertyA应为PropertyB的倍数。

如您所见,验证不是单独处理属性,而是需要验证2个相互关联的属性。如何使用 FluentValidations

进行此操作

谢谢!

1 个答案:

答案 0 :(得分:4)

假设您有这样的对象:

class Data {
  public int PropertyA;
  public int PropertyB;
}

然后在验证器中你可以这样做:

public class DataValidator : AbstractValidator<Data> {

  public DataValidator() {
    // 'x' in this case is the instance of the 'Data' class being validated
    //
    RuleFor(x => x).Must(HaveMultiplierRelationship);
  }

  private bool HaveMultiplierRelationship(Data d)
  {
    return (d.PropertyA % d.PropertyB) == 0;
  }
}

此方法效果很好,因为您可以将多个Must调用链接在一起,以测试相关对象的许多不同方面。