public override async Task OnActivateAsync() { var c1 = new CircularTest1(); var c2 = new CircularTest2(); c2.CircularTest1List.Add(c1); c1.CircularTest2 = c2; State.CircularTest1 = c1; await WriteStateAsync(); }
public void Serialize_CircularReference() { var c1 = new CircularTest1(); var c2 = new CircularTest2(); c2.CircularTest1List.Add(c1); c1.CircularTest2 = c2; var deserialized = (CircularTest1)OrleansSerializationLoop(environment.Serializer, environment.DeepCopier, c1); Assert.Equal(c1.CircularTest2.CircularTest1List.Count, deserialized.CircularTest2.CircularTest1List.Count); Assert.Same(deserialized, deserialized.CircularTest2.CircularTest1List[0]); deserialized = (CircularTest1)OrleansSerializationLoop(environment.Serializer, environment.DeepCopier, c1, true); Assert.Equal(c1.CircularTest2.CircularTest1List.Count, deserialized.CircularTest2.CircularTest1List.Count); Assert.Same(deserialized, deserialized.CircularTest2.CircularTest1List[0]); }