使用 Fluent Validation 在 ServiceStack 中进行复杂(深层嵌套)请求验证
Complex (deeply nested) request validation in ServiceStack, using Fluent Validation
当模型具有嵌套多个级别的属性时,我正在尝试在 ServiceStack DTO 中使用 Fluent Validation。
示例:模型结构如下
A => B => C => D
=> E
在不冒 nullref 风险的情况下验证 B。异常,我需要(成功)验证 A。
要验证 C,A 和 B 必须不为空。
D 和 E 具有交叉依赖性,因此要验证 E,则 A、B、C 和 D 不得为空。
似乎可用于此场景的唯一方法是将整个内容包装在 when/dependent 块中,但这很快变得难以管理。
如有任何想法,我们将不胜感激!
谢谢,
使用受 When()
块约束的多个验证器的替代方法是使用 "Must" predicate validator, create a Custom Validator 或避免对这些复杂的验证使用 Fluent Validation 并在您的服务中验证它们,您可以使用完整的 C# 来正常验证它们。
使用请求 DTO 属性 的名称在您的服务中抛出 ArgumentException(message,paramName)
将填充结构化 ResponseStatus
错误集合中的错误。
当模型具有嵌套多个级别的属性时,我正在尝试在 ServiceStack DTO 中使用 Fluent Validation。
示例:模型结构如下 A => B => C => D => E
在不冒 nullref 风险的情况下验证 B。异常,我需要(成功)验证 A。
要验证 C,A 和 B 必须不为空。
D 和 E 具有交叉依赖性,因此要验证 E,则 A、B、C 和 D 不得为空。
似乎可用于此场景的唯一方法是将整个内容包装在 when/dependent 块中,但这很快变得难以管理。
如有任何想法,我们将不胜感激!
谢谢,
使用受 When()
块约束的多个验证器的替代方法是使用 "Must" predicate validator, create a Custom Validator 或避免对这些复杂的验证使用 Fluent Validation 并在您的服务中验证它们,您可以使用完整的 C# 来正常验证它们。
使用请求 DTO 属性 的名称在您的服务中抛出 ArgumentException(message,paramName)
将填充结构化 ResponseStatus
错误集合中的错误。