链接相互依赖的规则

时间:2011-11-15 09:18:17

标签: c# .net fluentvalidation

我在项目中使用Fluent Validation 在我的ViewModel中,我有一个string类型的属性,有效值只是表示正整数的字符串 因此,我创建了一个简单的IntegerValidator,用于检查字符串是否可以解析为整数。这有效。
问题是,如何添加规则,它必须是一个正整数?我想使用现有的Greater Than Validator,但将其链接到我的字符串属性的规则会将其比较为string,而不是解析为int。怎么做到这一点?

我想做的样本(请注意ToInt()):

RuleFor(x => x.BatchNumber).SetValidator(new IntegerValidator())
                           .ToInt().GreaterThan(0);

1 个答案:

答案 0 :(得分:1)

您可以随时使用自定义方法......

RuleFor(x=>x.BatchNumber).Must(BeAPositiveIntegerString);

private bool BeAPositiveIntegerString(string batchNumber)
{
    // check both parse ability and greater than (once parsed)
}

可重用性较低但可行...