使用Fluent验证

时间:2019-02-26 20:59:01

标签: servicestack fluentvalidation

简而言之,当模型具有嵌套多个级别的属性时,尝试在ServiceStack DTO中使用Fluent验证。

示例::模型的结构如下 A => B => C => D                            => E

在不冒nullref风险的情况下验证B。例外,我需要(成功)验证A。

要验证C,A和B必须不为null。

D和E具有交叉依赖性,因此要验证E,则A,B,C和D不能为空。

在这种情况下,似乎唯一可用的方法是将整个内容包装在when / dependent块中,但是很快就变得难以管理。

任何想法将不胜感激!

谢谢

1 个答案:

答案 0 :(得分:0)

使用受When()约束的多个验证器的替代方法是使用"Must" predicate validator,创建Custom Validator或避免对这些复杂的验证使用Fluent验证并在您的服务中验证它们您可以使用完整的C#验证它们是否正常。

使用Request DTO属性的名称在服务中抛出ArgumentException(message,paramName),将在结构化的ResponseStatus错误集合中填充错误。