Я пытаюсь контролировать глубину генерации дерева объектов с помощью Autofixture. В некоторых случаях я хочу просто создать корневой объект, а в другом наборе случаев я могу сгенерировать дерево до определенной глубины (предположим, 2, 3).
class Foo {
public string Name {get;set;}
public Bar Bar {get;set;}
public AnotherType Xpto {get;set;}
public YetAnotherType Xpto {get;set;}
}
class Bar {
public string Name {get;set;}
public string Description {get;set;}
public AnotherType Xpto {get;set;}
public YetAnotherType Xpto {get;set;}
public Xpto Xpto {get;set;}
}
class Xpto {
public string Description {get;set;}
public AnotherType Xpto {get;set;}
public YetAnotherType Xpto {get;set;}
}
В приведенном выше примере я хотел бы (глубина 1) управлять процессом генерации, чтобы создать экземпляр только класса Foo и свойство Bar или любой другой ссылочный тип в этом классе не заполняется или (глубина 2) Я хотел бы, чтобы экземпляр класса Foo был создан, свойство Bar заполнено новым экземпляром Bar, но свойство Xpto или любой другой ссылочный тип в этом классе не заполнено.
В случае, если я не заметил его в базе кода, у Autofixture есть настройка или поведение, чтобы позволить нам иметь такой контроль?
Опять же, это не рекурсия, которую я хочу контролировать, но глубина населения графа объектов.