public void InfiniteLoopCausedBySerializingCalculatedPropertiesCanBePreventedBySettingDontSerializePropertiesWithNoSetter() { var ser = new YAXSerializer(typeof(CalculatedPropertiesCanCauseInfiniteLoop), YAXSerializationOptions.DontSerializePropertiesWithNoSetter); string result = ser.Serialize(CalculatedPropertiesCanCauseInfiniteLoop.GetSampleInstance()); var deserialzedInstance = ser.Deserialize(result) as CalculatedPropertiesCanCauseInfiniteLoop; Assert.IsNotNull(deserialzedInstance); }
public void MaxRecursionPreventsInfiniteLoop() { var ser = new YAXSerializer(typeof(CalculatedPropertiesCanCauseInfiniteLoop)); ser.MaxRecursion = 10; string result = ser.Serialize(CalculatedPropertiesCanCauseInfiniteLoop.GetSampleInstance()); var deserialzedInstance = ser.Deserialize(result) as CalculatedPropertiesCanCauseInfiniteLoop; Assert.IsNotNull(deserialzedInstance); Assert.AreEqual(2.0M, deserialzedInstance.Data); }
public void MaxRecursionPreventsInfiniteLoop() { var ser = new YAXSerializer(typeof(CalculatedPropertiesCanCauseInfiniteLoop)); ser.Options.MaxRecursion = 10; var result = ser.Serialize(CalculatedPropertiesCanCauseInfiniteLoop.GetSampleInstance()); var deserializedInstance = ser.Deserialize(result) as CalculatedPropertiesCanCauseInfiniteLoop; Assert.IsNotNull(deserializedInstance); Assert.That(ser.Options.MaxRecursion, Is.EqualTo(10)); Assert.That(deserializedInstance.Data, Is.EqualTo(2.0M)); Assert.That(ser.RecursionCount, Is.EqualTo(0)); }