【发布时间】:2019-07-22 13:02:56
【问题描述】:
我在 .NET Core 2.2 API 中有一个类,我正在对其应用 Fluent Validation。该类有一个整数属性public int? PurchasePrice {get;set;}。
此属性的父级的父级有一个枚举,我想做的是当该枚举的值为 4 时,将此 PurchasePrice 字段设为必填。
我已经开始编写这样的自定义规则了:-
RuleFor(pd => pd.PurchasePrice).Custom((a, context) =>
{
var parent = context.ParentContext.InstanceToValidate as ParentObject;
var parentOfParent = context.ParentContext.ParentContext.InstanceToValidate as GrandParentObject;
});
但是,第二个 ParentContext 根本不存在于 Intellisense 中,并且由于无法识别而引发编译错误。
在编写验证规则时,我是否走错了遍历对象结构的方式?
提前致谢!
注意:检索var parent 的行按预期工作。
【问题讨论】:
-
现在我明白了你想要做什么,我没有发现任何明显的东西,包括验证中的父母。我确实找到了
When的源代码,如果您需要自己实现某些东西,这可能会有所帮助。见here。 -
是的,这就是我所需要的加上对基础对象的引用来访问我需要的字段。谢谢。请作为答案,我可以标记。
-
我认为您最好提供问题的解决方案作为答案,因为我所做的只是查找
When的当前实现,这并不能真正回答您的问题问。
标签: c# .net .net-core fluentvalidation