[{"data":1,"prerenderedAt":636},["ShallowReactive",2],{"docs-navigation":3,"api-catalog":188,"api-nav-empty":286,"docs:\u002Fdocs\u002Fhow-to\u002Fcircular-refs":287,"docs:\u002Fdocs\u002Fhow-to\u002Fcircular-refs-surround":633},[4],{"title":5,"path":6,"stem":7,"children":8,"page":32},"Docs","\u002Fdocs","docs",[9,33,63,85,99,137,154],{"title":10,"badge":11,"icon":12,"path":13,"stem":14,"children":15,"page":32},"Get started",null,"i-lucide-rocket","\u002Fdocs\u002Fget-started","docs\u002F1.get-started",[16,20,24,28],{"title":17,"path":18,"stem":19,"badge":11},"Introduction","\u002Fdocs\u002Fget-started\u002Fintroduction","docs\u002F1.get-started\u002F1.introduction",{"title":21,"path":22,"stem":23,"badge":11},"Installation","\u002Fdocs\u002Fget-started\u002Finstallation","docs\u002F1.get-started\u002F2.installation",{"title":25,"path":26,"stem":27,"badge":11},"Your first test","\u002Fdocs\u002Fget-started\u002Ffirst-test","docs\u002F1.get-started\u002F3.first-test",{"title":29,"path":30,"stem":31,"badge":11},"Refactoring a test","\u002Fdocs\u002Fget-started\u002Frefactoring-a-test","docs\u002F1.get-started\u002F4.refactoring-a-test",false,{"title":34,"badge":11,"icon":35,"path":36,"stem":37,"children":38,"page":32},"Fundamentals","i-lucide-layers","\u002Fdocs\u002Ffundamentals","docs\u002F2.fundamentals",[39,43,47,51,55,59],{"title":40,"path":41,"stem":42,"badge":11},"Fixture and Create","\u002Fdocs\u002Ffundamentals\u002Ffixture-and-create","docs\u002F2.fundamentals\u002F1.fixture-and-create",{"title":44,"path":45,"stem":46,"badge":11},"Build DSL","\u002Fdocs\u002Ffundamentals\u002Fbuild-dsl","docs\u002F2.fundamentals\u002F2.build-dsl",{"title":48,"path":49,"stem":50,"badge":11},"Customizations","\u002Fdocs\u002Ffundamentals\u002Fcustomizations","docs\u002F2.fundamentals\u002F3.customizations",{"title":52,"path":53,"stem":54,"badge":11},"Specimen graphs","\u002Fdocs\u002Ffundamentals\u002Fspecimen-graphs","docs\u002F2.fundamentals\u002F4.specimen-graphs",{"title":56,"path":57,"stem":58,"badge":11},"Behaviors","\u002Fdocs\u002Ffundamentals\u002Fbehaviors","docs\u002F2.fundamentals\u002F5.behaviors",{"title":60,"path":61,"stem":62,"badge":11},"Customizations catalog","\u002Fdocs\u002Ffundamentals\u002Fcustomizations-catalog","docs\u002F2.fundamentals\u002F6.customizations-catalog",{"title":64,"badge":11,"icon":65,"path":66,"stem":67,"children":68,"page":32},"How-to guides","i-lucide-book-open","\u002Fdocs\u002Fhow-to","docs\u002F3.how-to",[69,73,77,81],{"title":70,"path":71,"stem":72,"badge":11},"Collections","\u002Fdocs\u002Fhow-to\u002Fcollections","docs\u002F3.how-to\u002F1.collections",{"title":74,"path":75,"stem":76,"badge":11},"Circular references","\u002Fdocs\u002Fhow-to\u002Fcircular-refs","docs\u002F3.how-to\u002F2.circular-refs",{"title":78,"path":79,"stem":80,"badge":11},"Register, Freeze, and Inject","\u002Fdocs\u002Fhow-to\u002Fregister-freeze-inject","docs\u002F3.how-to\u002F3.register-freeze-inject",{"title":82,"path":83,"stem":84,"badge":11},"Data annotations","\u002Fdocs\u002Fhow-to\u002Fdata-annotations","docs\u002F3.how-to\u002F4.data-annotations",{"title":86,"badge":11,"icon":87,"path":88,"stem":89,"children":90,"page":32},"Extensions","i-lucide-puzzle","\u002Fdocs\u002Fextensions","docs\u002F4.extensions",[91,95],{"title":92,"path":93,"stem":94,"badge":11},"Idioms","\u002Fdocs\u002Fextensions\u002Fidioms","docs\u002F4.extensions\u002F1.idioms",{"title":96,"path":97,"stem":98,"badge":11},"Seed extensions","\u002Fdocs\u002Fextensions\u002Fseed-extensions","docs\u002F4.extensions\u002F2.seed-extensions",{"title":100,"badge":11,"icon":101,"path":102,"stem":103,"children":104,"page":32},"Integrations","i-lucide-plug","\u002Fdocs\u002Fintegrations","docs\u002F5.integrations",[105,109,113,117,121,125,129],{"title":106,"path":107,"stem":108,"badge":11},"Overview","\u002Fdocs\u002Fintegrations\u002Foverview","docs\u002F5.integrations\u002F00.overview",{"title":110,"path":111,"stem":112,"badge":11},"xUnit.net 3","\u002Fdocs\u002Fintegrations\u002Fxunit3","docs\u002F5.integrations\u002F01.xunit3",{"title":114,"path":115,"stem":116,"badge":11},"AutoMoq","\u002Fdocs\u002Fintegrations\u002Fautomoq","docs\u002F5.integrations\u002F02.automoq",{"title":118,"path":119,"stem":120,"badge":11},"NUnit 4","\u002Fdocs\u002Fintegrations\u002Fnunit4","docs\u002F5.integrations\u002F04.nunit4",{"title":122,"path":123,"stem":124,"badge":11},"AutoNSubstitute","\u002Fdocs\u002Fintegrations\u002Fautonsubstitute","docs\u002F5.integrations\u002F06.autonsubstitute",{"title":126,"path":127,"stem":128,"badge":11},"AutoFakeItEasy","\u002Fdocs\u002Fintegrations\u002Fautofakeiteasy","docs\u002F5.integrations\u002F09.autofakeiteasy",{"title":130,"path":131,"stem":132,"badge":133},"TUnit","\u002Fdocs\u002Fintegrations\u002Ftunit","docs\u002F5.integrations\u002F10.tunit",{"label":134,"color":135,"variant":136},"Preview","warning","subtle",{"title":138,"badge":11,"icon":139,"path":140,"stem":141,"children":142,"page":32},"Advanced","i-lucide-cog","\u002Fdocs\u002Fadvanced","docs\u002F6.advanced",[143,146,150],{"title":106,"path":144,"stem":145,"badge":11},"\u002Fdocs\u002Fadvanced\u002Foverview","docs\u002F6.advanced\u002F0.overview",{"title":147,"path":148,"stem":149,"badge":11},"Specimen pipeline","\u002Fdocs\u002Fadvanced\u002Fspecimen-pipeline","docs\u002F6.advanced\u002F1.specimen-pipeline",{"title":151,"path":152,"stem":153,"badge":11},"Specimen builders and specifications","\u002Fdocs\u002Fadvanced\u002Fspecimen-builders-and-specifications","docs\u002F6.advanced\u002F2.specimen-builders-and-specifications",{"title":155,"badge":11,"icon":156,"path":157,"stem":158,"children":159,"page":32},"Reference","i-lucide-library","\u002Fdocs\u002Freference","docs\u002F7.reference",[160,164,168,172,176,180,184],{"title":161,"path":162,"stem":163,"badge":11},"NuGet packages","\u002Fdocs\u002Freference\u002Fpackages","docs\u002F7.reference\u002F1.packages",{"title":165,"path":166,"stem":167,"badge":11},"API reference","\u002Fdocs\u002Freference\u002Fapi-reference","docs\u002F7.reference\u002F2.api-reference",{"title":169,"path":170,"stem":171,"badge":11},"Cheat sheet","\u002Fdocs\u002Freference\u002Fcheat-sheet","docs\u002F7.reference\u002F3.cheat-sheet",{"title":173,"path":174,"stem":175,"badge":11},"FAQ","\u002Fdocs\u002Freference\u002Ffaq","docs\u002F7.reference\u002F4.faq",{"title":177,"path":178,"stem":179,"badge":11},"Compatibility","\u002Fdocs\u002Freference\u002Fcompatibility","docs\u002F7.reference\u002F5.compatibility",{"title":181,"path":182,"stem":183,"badge":11},"v4 to v5 migration","\u002Fdocs\u002Freference\u002Fv4-to-v5-migration","docs\u002F7.reference\u002F6.v4-to-v5-migration",{"title":185,"path":186,"stem":187,"badge":11},"Previous versions","\u002Fdocs\u002Freference\u002Fprevious-versions","docs\u002F7.reference\u002F7.previous-versions",{"defaultPath":189,"packages":190},"\u002Fapi\u002Fautofixture\u002F5-0-0-rc-1",[191,204,210,215,221,227,232,238,243,248,253,258,264,271,276,281],{"id":192,"name":193,"nugetId":193,"primary":194,"versions":195,"defaultVersion":197,"defaultVersionSegment":198},"autofixture","AutoFixture",true,[196,200],{"version":197,"versionSegment":198,"line":199,"isLatest":194},"5.0.0-rc.1","5-0-0-rc-1","v5",{"version":201,"versionSegment":202,"line":203,"isLatest":32},"4.18.1","4-18-1","v4",{"id":205,"name":206,"nugetId":206,"primary":32,"versions":207,"defaultVersion":197,"defaultVersionSegment":198},"autofakeiteasy","AutoFixture.AutoFakeItEasy",[208,209],{"version":197,"versionSegment":198,"line":199,"isLatest":194},{"version":201,"versionSegment":202,"line":203,"isLatest":32},{"id":211,"name":212,"nugetId":212,"primary":32,"versions":213,"defaultVersion":201,"defaultVersionSegment":202},"autofoq","AutoFixture.AutoFoq",[214],{"version":201,"versionSegment":202,"line":203,"isLatest":194},{"id":216,"name":217,"nugetId":217,"primary":32,"versions":218,"defaultVersion":197,"defaultVersionSegment":198},"automoq","AutoFixture.AutoMoq",[219,220],{"version":197,"versionSegment":198,"line":199,"isLatest":194},{"version":201,"versionSegment":202,"line":203,"isLatest":32},{"id":222,"name":223,"nugetId":223,"primary":32,"versions":224,"defaultVersion":197,"defaultVersionSegment":198},"autonsubstitute","AutoFixture.AutoNSubstitute",[225,226],{"version":197,"versionSegment":198,"line":199,"isLatest":194},{"version":201,"versionSegment":202,"line":203,"isLatest":32},{"id":228,"name":229,"nugetId":229,"primary":32,"versions":230,"defaultVersion":201,"defaultVersionSegment":202},"autorhinomocks","AutoFixture.AutoRhinoMocks",[231],{"version":201,"versionSegment":202,"line":203,"isLatest":194},{"id":233,"name":234,"nugetId":234,"primary":32,"versions":235,"defaultVersion":197,"defaultVersionSegment":198},"idioms","AutoFixture.Idioms",[236,237],{"version":197,"versionSegment":198,"line":199,"isLatest":194},{"version":201,"versionSegment":202,"line":203,"isLatest":32},{"id":239,"name":240,"nugetId":240,"primary":32,"versions":241,"defaultVersion":201,"defaultVersionSegment":202},"idioms-fscheck","AutoFixture.Idioms.FsCheck",[242],{"version":201,"versionSegment":202,"line":203,"isLatest":194},{"id":244,"name":245,"nugetId":245,"primary":32,"versions":246,"defaultVersion":201,"defaultVersionSegment":202},"nunit2","AutoFixture.NUnit2",[247],{"version":201,"versionSegment":202,"line":203,"isLatest":194},{"id":249,"name":250,"nugetId":250,"primary":32,"versions":251,"defaultVersion":201,"defaultVersionSegment":202},"nunit3","AutoFixture.NUnit3",[252],{"version":201,"versionSegment":202,"line":203,"isLatest":194},{"id":254,"name":255,"nugetId":255,"primary":32,"versions":256,"defaultVersion":197,"defaultVersionSegment":198},"nunit4","AutoFixture.NUnit4",[257],{"version":197,"versionSegment":198,"line":199,"isLatest":194},{"id":259,"name":260,"nugetId":260,"primary":32,"versions":261,"defaultVersion":197,"defaultVersionSegment":198},"seedextensions","AutoFixture.SeedExtensions",[262,263],{"version":197,"versionSegment":198,"line":199,"isLatest":194},{"version":201,"versionSegment":202,"line":203,"isLatest":32},{"id":265,"name":266,"nugetId":266,"primary":32,"versions":267,"defaultVersion":269,"defaultVersionSegment":270},"tunit","AutoFixture.TUnit",[268],{"version":269,"versionSegment":270,"line":203,"isLatest":194},"0.1.0-preview0001","0-1-0-preview0001",{"id":272,"name":273,"nugetId":273,"primary":32,"versions":274,"defaultVersion":201,"defaultVersionSegment":202},"xunit","AutoFixture.xUnit",[275],{"version":201,"versionSegment":202,"line":203,"isLatest":194},{"id":277,"name":278,"nugetId":278,"primary":32,"versions":279,"defaultVersion":201,"defaultVersionSegment":202},"xunit2","AutoFixture.xUnit2",[280],{"version":201,"versionSegment":202,"line":203,"isLatest":194},{"id":282,"name":283,"nugetId":283,"primary":32,"versions":284,"defaultVersion":197,"defaultVersionSegment":198},"xunit3","AutoFixture.Xunit3",[285],{"version":197,"versionSegment":198,"line":199,"isLatest":194},[],{"id":288,"title":74,"badge":11,"body":289,"description":628,"extension":629,"meta":630,"navigation":194,"path":75,"seo":631,"stem":76,"updated":11,"__hash__":632},"docs\u002Fdocs\u002F3.how-to\u002F2.circular-refs.md",{"type":290,"value":291,"toc":621},"minimark",[292,296,301,316,320,323,402,405,555,559,577,583,587,597,601,617],[293,294,295],"p",{},"By default AutoFixture throws when it detects a circular object graph.",[297,298,300],"h2",{"id":299},"example-scenario","Example scenario",[293,302,303,307,308,311,312,315],{},[304,305,306],"code",{},"TreeNode"," has a ",[304,309,310],{},"Parent"," property that points back to another node. A plain ",[304,313,314],{},"Create\u003CTreeNode>()"," triggers infinite recursion detection.",[297,317,319],{"id":318},"example","Example",[293,321,322],{},"Default behavior throws:",[324,325,330],"pre",{"className":326,"code":327,"language":328,"meta":329,"style":329},"language-csharp shiki shiki-themes light-plus light-plus dark-plus","var fixture = new Fixture();\n\nAssert.ThrowsAny\u003CObjectCreationException>(() => fixture.Create\u003CTreeNode>());\n","csharp","",[304,331,332,359,365],{"__ignoreMap":329},[333,334,337,341,345,349,352,356],"span",{"class":335,"line":336},"line",1,[333,338,340],{"class":339},"stxUP","var",[333,342,344],{"class":343},"sswaR"," fixture",[333,346,348],{"class":347},"s_Yst"," = ",[333,350,351],{"class":339},"new",[333,353,355],{"class":354},"sopvc"," Fixture",[333,357,358],{"class":347},"();\n",[333,360,362],{"class":335,"line":361},2,[333,363,364],{"emptyLinePlaceholder":194},"\n",[333,366,368,371,374,378,381,384,387,390,392,395,397,399],{"class":335,"line":367},3,[333,369,370],{"class":343},"Assert",[333,372,373],{"class":347},".",[333,375,377],{"class":376},"swoLU","ThrowsAny",[333,379,380],{"class":347},"\u003C",[333,382,383],{"class":354},"ObjectCreationException",[333,385,386],{"class":347},">(() => ",[333,388,389],{"class":343},"fixture",[333,391,373],{"class":347},[333,393,394],{"class":376},"Create",[333,396,380],{"class":347},[333,398,306],{"class":354},[333,400,401],{"class":347},">());\n",[293,403,404],{},"Replace the default throwing behavior to omit recursive properties:",[324,406,408],{"className":326,"code":407,"language":328,"meta":329,"style":329},"fixture.Behaviors\n    .OfType\u003CThrowingRecursionBehavior>()\n    .ToList()\n    .ForEach(b => fixture.Behaviors.Remove(b));\nfixture.Behaviors.Add(new OmitOnRecursionBehavior());\n\nvar node = fixture.Create\u003CTreeNode>();\n\nAssert.NotNull(node);\n",[304,409,410,419,435,445,480,504,509,532,537],{"__ignoreMap":329},[333,411,412,414,416],{"class":335,"line":336},[333,413,389],{"class":343},[333,415,373],{"class":347},[333,417,418],{"class":343},"Behaviors\n",[333,420,421,424,427,429,432],{"class":335,"line":361},[333,422,423],{"class":347},"    .",[333,425,426],{"class":376},"OfType",[333,428,380],{"class":347},[333,430,431],{"class":354},"ThrowingRecursionBehavior",[333,433,434],{"class":347},">()\n",[333,436,437,439,442],{"class":335,"line":367},[333,438,423],{"class":347},[333,440,441],{"class":376},"ToList",[333,443,444],{"class":347},"()\n",[333,446,448,450,453,456,459,462,464,466,468,470,473,475,477],{"class":335,"line":447},4,[333,449,423],{"class":347},[333,451,452],{"class":376},"ForEach",[333,454,455],{"class":347},"(",[333,457,458],{"class":343},"b",[333,460,461],{"class":347}," => ",[333,463,389],{"class":343},[333,465,373],{"class":347},[333,467,56],{"class":343},[333,469,373],{"class":347},[333,471,472],{"class":376},"Remove",[333,474,455],{"class":347},[333,476,458],{"class":343},[333,478,479],{"class":347},"));\n",[333,481,483,485,487,489,491,494,496,498,501],{"class":335,"line":482},5,[333,484,389],{"class":343},[333,486,373],{"class":347},[333,488,56],{"class":343},[333,490,373],{"class":347},[333,492,493],{"class":376},"Add",[333,495,455],{"class":347},[333,497,351],{"class":339},[333,499,500],{"class":354}," OmitOnRecursionBehavior",[333,502,503],{"class":347},"());\n",[333,505,507],{"class":335,"line":506},6,[333,508,364],{"emptyLinePlaceholder":194},[333,510,512,514,517,519,521,523,525,527,529],{"class":335,"line":511},7,[333,513,340],{"class":339},[333,515,516],{"class":343}," node",[333,518,348],{"class":347},[333,520,389],{"class":343},[333,522,373],{"class":347},[333,524,394],{"class":376},[333,526,380],{"class":347},[333,528,306],{"class":354},[333,530,531],{"class":347},">();\n",[333,533,535],{"class":335,"line":534},8,[333,536,364],{"emptyLinePlaceholder":194},[333,538,540,542,544,547,549,552],{"class":335,"line":539},9,[333,541,370],{"class":343},[333,543,373],{"class":347},[333,545,546],{"class":376},"NotNull",[333,548,455],{"class":347},[333,550,551],{"class":343},"node",[333,553,554],{"class":347},");\n",[297,556,558],{"id":557},"how-it-works","How it works",[560,561,562,568,574],"ul",{},[563,564,565,567],"li",{},[304,566,431],{}," — default; fails fast on cycles",[563,569,570,573],{},[304,571,572],{},"OmitOnRecursionBehavior"," — stops recursion and leaves the recursive property unset",[563,575,576],{},"Remove the throwing behavior before adding the omit behavior",[293,578,579,580,373],{},"See also ",[581,582,56],"a",{"href":57},[297,584,586],{"id":585},"next-steps","Next steps",[560,588,589,593],{},[563,590,591],{},[581,592,56],{"href":57},[563,594,595],{},[581,596,52],{"href":53},[297,598,600],{"id":599},"api","API",[560,602,603,610],{},[563,604,605],{},[581,606,608],{"href":607},"\u002Fapi\u002Fautofixture\u002F5-0-0-rc-1\u002Fautofixture.throwingrecursionbehavior",[304,609,431],{},[563,611,612],{},[581,613,615],{"href":614},"\u002Fapi\u002Fautofixture\u002F5-0-0-rc-1\u002Fautofixture.omitonrecursionbehavior",[304,616,572],{},[618,619,620],"style",{},"html pre.shiki code .stxUP, html code.shiki .stxUP{--shiki-light:#0000FF;--shiki-default:#0000FF;--shiki-dark:#569CD6}html pre.shiki code .sswaR, html code.shiki .sswaR{--shiki-light:#001080;--shiki-default:#001080;--shiki-dark:#9CDCFE}html pre.shiki code .s_Yst, html code.shiki .s_Yst{--shiki-light:#000000;--shiki-default:#000000;--shiki-dark:#D4D4D4}html pre.shiki code .sopvc, html code.shiki .sopvc{--shiki-light:#267F99;--shiki-default:#267F99;--shiki-dark:#4EC9B0}html pre.shiki code .swoLU, html code.shiki .swoLU{--shiki-light:#795E26;--shiki-default:#795E26;--shiki-dark:#DCDCAA}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":329,"searchDepth":361,"depth":361,"links":622},[623,624,625,626,627],{"id":299,"depth":361,"text":300},{"id":318,"depth":361,"text":319},{"id":557,"depth":361,"text":558},{"id":585,"depth":361,"text":586},{"id":599,"depth":361,"text":600},"Handle parent-child graphs that reference each other using OmitOnRecursionBehavior.","md",{},{"title":74,"description":628},"k_s2Cxqh06SR_YPQJL__ZaI89K-TLwCkHU_tHV5kuxU",[634,635],{"title":70,"path":71,"stem":72,"children":-1},{"title":78,"path":79,"stem":80,"children":-1},1788856648528]