У меня есть класс 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 проверить подобъекты таким образом.