【发布时间】:2016-11-30 22:00:41
【问题描述】:
我有一个超过两层深度的对象图。它代表一个有子孙的实体(aggregate):
A → B → C
我想验证图表的所有级别。我知道在使用 Must() 的重载或使用 Custom() 规则验证 B 时,我可以访问 A。我还没有弄清楚如何使用这两种技术从 C 的验证器中访问 A,因为似乎没有上下文。
我能够做我想做的事情的唯一方法是创建一个新对象,它是一个扁平化的表示。换句话说,创建一个将 A 和 C 放在同一级别的包装器,这允许我在 C 上使用 Must() 重载来到达伪父 Wrapper 上的 A。
Wrapper → A → B → C
→ C
问题是我必须创建另一个验证器(在这种情况下为 Wrapper)。我更愿意将我对特定事物的所有验证逻辑放在一起。
还有其他方法吗?
【问题讨论】:
-
我创建了代码示例,这样讨论会更容易一些,看看它只是基本的构建块。
标签: c# validation fluentvalidation object-graph