У меня есть несколько бизнес-правил для моего FormPartB
объекта, которые зависят от связанных сущностей Licensee
и FormPartA
. Я новичок в FluentValidation.
Что (я думаю) я хочу сделать:
Внутри моих FormPartBValidator
получите сущности Licensee
и FormPartA
один раз, затем установите набор правил (то есть предикатов Must()
) для FormPartB
, используя значения из этих связанных объектов.
т.е. Я не хочу снова извлекать обе внешние сущности в каждом определении правила.
У меня была пара мыслей:
(1) Получите эти сущности в конструкторе Validator выше моих 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
.)
И я даже не уверен, что «получить объекты и сохранить как частные поля» - правильный путь.
Любой совет?