简而言之,当模型具有嵌套多个级别的属性时,尝试在ServiceStack DTO中使用Fluent验证。
示例::模型的结构如下 A => B => C => D => E
在不冒nullref风险的情况下验证B。例外,我需要(成功)验证A。
要验证C,A和B必须不为null。
D和E具有交叉依赖性,因此要验证E,则A,B,C和D不能为空。
在这种情况下,似乎唯一可用的方法是将整个内容包装在when / dependent块中,但是很快就变得难以管理。
任何想法将不胜感激!
谢谢
答案 0 :(得分:0)
使用受When()
约束的多个验证器的替代方法是使用"Must" predicate validator,创建Custom Validator或避免对这些复杂的验证使用Fluent验证并在您的服务中验证它们您可以使用完整的C#验证它们是否正常。
使用Request DTO属性的名称在服务中抛出ArgumentException(message,paramName)
,将在结构化的ResponseStatus
错误集合中填充错误。