私が扱っているドメイン モデルには、多くの循環参照があります。実際、グラフ内の任意のポイントからほとんどのオブジェクトにアクセスできます。これらの循環参照の多くは、コレクションにも含まれています。したがって、Booking
はコレクションStudents
を持ち、コレクションをCourses
持ち、コレクションを持ちBookings
ます。これは実際のモデルではなく、単なる例です。この問題は、約 30 の異なるクラスの組み合わせによって引き起こされます。
このモデルで作業するために、私は AutoFixture を次のように構成して使用しています
var fixture = new Fixture().Customize(new MultipleCustomization());
fixture.Behaviors.Remove(new ThrowingRecursionBehavior());
fixture.Behaviors.Add(new OmitOnRecursionBehavior());
var booking = fixture.CreateAnonymous<Booking>();
これにより、AutoFixture は約 20 分間実行され、最終的に OutOfMemoryException で失敗します。
このモデルは AutoFixture に終わりのない無限グラフを作成するように要求していますか? もしそうなら、グラフの深さを制限するように設定する方法はありますか?