У меня есть класс Action, в котором есть коллекция объектов Action.Примерно так:
public class Action
{
ICollection<Action> SubActions;
}
Это в основном образует древовидную структуру (я проверяю, что циклов нет).Я использовал Fluent Validation, чтобы написать валидатор для этого класса.Вот моя попытка Валидатора:
public class ActionValidator : AbstractValidator<Action>
{
public ActionValidator()
{
RuleFor(x => x.SubActions).SetCollectionValidator(new ActionValidator());
}
}
Единство разрушается, когда я пытаюсь разрешить все, что зависит от ActionValidator.Более конкретно, LINQPad аварийно завершает работу, когда пытается разрешить службу, которая зависит от ActionValidator, предположительно из-за переполнения стека.
В моем классе Action есть и другие участники, которых я проверяю, но я просто добавил важную часть для краткости.Если я закомментирую правило, которое я перечислил здесь, оно будет работать нормально (за исключением того, что оно больше не проверяет субакции).
У меня проблема с моим подходом.Я рекурсивно строю валидаторы, пока что-то не умрет.Но я просто не знаю, как сказать Fluent Validation для проверки подобъектов таким образом.