我的FormPartB
对象有几个业务规则,它们依赖于相关实体Licensee
和FormPartA
. 我是 FluentValidation 的新手。
我想做的(我认为)是:
在 my
FormPartBValidator
中,获取Licensee
andFormPartA
实体一次,然后设置一堆规则(即Must()
谓词)以FormPartB
使用来自这些相关对象的值。即我不想在每个规则定义中再次获取两个外部实体。
我有几个想法:
(1) 在验证器的构造函数中获取那些实体,在我的RuleFor
定义之上,然后将这些实体保存为私有字段,
public PartBValidator()
{
// Get my external data and save as private fields
RuleFor...
RuleFor...
}
或者
(2) 在对 Validate() 的调用中获取这些实体,然后将这些实体保存为私有字段:
public override ValidationResult Validate(FormPartB instance)
{
// Get my external data and save as private fields
return base.Validate(instance);
}
然而
在选项 (1) 中,我似乎无法访问 FormPartB 实例
在选项 (2) 中,Validate() 似乎没有像我想象的那样工作(即似乎没有在每次验证时都被调用
FormPartB
。)而且我什至不确定“获取对象并保存为私有字段”是正确的方法。
有什么建议吗?