자식 개체가 부모 개체에 대한 참조를 갖는 개체 그래프를 만들려면 autofixture를 사용하고 싶습니다. 예를 들어autofixture를 사용하여 자식 속성에 부모 개체를 자동으로 설정하는 방법
class A
{
public List<B> Children { get; set; }
}
class B
{
public A Parent { get; set; }
}
나는 재귀를 처리하는 동작을 만들기 위해 노력했다,하지만 난 속성의 내용으로 부모 개체를 방출하는 방법을 모르겠어요.
public class AutoParentOnRecursionBehavior : ISpecimenBuilderTransformation
{
public ISpecimenBuilder Transform(ISpecimenBuilder builder)
{
if (builder == null)
throw new ArgumentNullException("builder");
return new RecursionGuard(builder, new AutoParentOnRecursionHandler());
}
}
public class AutoParentOnRecursionHandler : IRecursionHandler
{
public object HandleRecursiveRequest(
object request,
IEnumerable<object> recordedRequests)
{
object handleRecursiveRequest = recordedRequests.First(x => x.Equals(request));
return ....
}
}
감사합니다.
편집 : 유형 A와 B 또는 속성 하위를 지정하지 않고도 일반적인 방법을 생각하고 있습니다. 개체가 들어있는 속성 형식의 모든 속성에 대해 부모 개체로 설정합니다. 즉, 재귀 가드를 트리거하는 유형의 모든 속성은 생성 계층 구조에서 마지막 객체로 설정합니다.
http://stackoverflow.com/questions :
일부는 결과를 설명하기 위해 주장/17087788/creating-recursive-tree-with-autofixture –
클래스의 API를 변경하는 것이 가능합니까? 여기에 제안 된 디자인은 AutoFixture가 다루기가 어렵지 않을뿐만 아니라 일반적으로 여러분과 팀 구성원들에게 고통의 영구적 인 원천이됩니다. –