Как мне использовать плавную проверку для проверки объекта, который содержит больше объектов того же типа?

У меня есть класс Action, в котором есть коллекция дополнительных объектов Action. Примерно так:

public class Action
{
    ICollection<Action> SubActions;
}

Это в основном формирует древовидную структуру (я удостоверяюсь, что нет циклов Я использовал Fluent Validation, чтобы написать валидатор для этого класса. Вот моя попытка валидатора:

public class ActionValidator : AbstractValidator<Action>
{
    public ActionValidator()
    {
        RuleFor(x => x.SubActions).SetCollectionValidator(new ActionValidator());
    }
}

Unity взрывается, когда я пытаюсь разрешить что-либо, что зависит от ActionValidator. В частности, LINQPad вылетает, когда пытается разрешить службу, которая зависит от ActionValidator, предположительно из-за переполнения стека.

В моем классе Action есть и другие члены, которые я проверяю, но я просто поставил важную часть для краткости. Если я закомментирую правило, которое я здесь перечислю , он работает нормально (за исключением того, что он больше не проверяет вспомогательные действия).

У меня проблема с моим подходом. Я рекурсивно конструирую валидаторы, пока что-то не умрет. Но я просто не уверен, как сообщить Fluent Validation проверить подобъекты таким образом.

5
задан Ross 18 August 2011 в 00:20
поделиться