我想使用自動混合來創建對象圖,其中的子對象具有對父對象的引用。例如:如何使用自動混合自動設置子對象中的父對象
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/create-recursive-tree-with-autofixture –
您可以更改類的API嗎?這裏提出的設計不僅對AutoFixture來說很難處理,而且對於您和您的團隊成員而言,一般來說這將是一個永久的痛苦來源。 –