Как распространить значения времени выполнения в беглую проверку? - PullRequest
0 голосов
/ 08 апреля 2020

Я пытаюсь выполнить некоторые проверки, которые зависят от значения времени выполнения, и его также необходимо распространить на дочерние валидаторы, но я получаю:

System.InvalidOperationException: ' Вложенные валидаторы могут использоваться только с выражениями-членами. '

Я реализовал это с помощью модели валидации, которая содержит это значение и фактический объект, который я хочу проверить. Вот что я делаю:

public class ParentValidator : AbstractValidator<ValidationModel<ParentType>>
{
    public MyValidator(IValidator<ValidationModel<ChildType>> childValidator)
    {
        // Some validation rules here on the actual object's properties

        RuleFor(model => new ValidationModel<ChildType>
        {
             Value = model.Value,
             ActualObject = model.ActualObject.ChildProperty
        })
        .SetValidator(childValidator)
        .WithName(nameof(ParentType.ChildProperty));
    }
}

Когда я пытаюсь использовать валидатор с чем-то вроде

parentValidator.Validate(new ValidationModel<ParentType>
{
   Value = "some value",
   ActualObject = parentObject
});

, я получаю указанное выше исключение. Интересно, могу ли я что-нибудь сделать, не ломая так много, если это вообще возможно. Также обратите внимание, что это проект, нацеленный на .Net 3.5, и я использую FluentValidation.Net35 версию 1.0.1.

Заранее спасибо, Дэвид.

...