I\'m a little bit confused. I can\'t find out the difference between PreserveReferences and MaxDepth.
Let\'s suppose we have the following
MaxDepth doesn't consider object values at runtime. It simply stops mapping after the depth of the mapping tree reaches the configured value.
PreserveReferences doesn't help with ProjectTo, MaxDepth does. If somehow, with Map, you have a mapping tree that might overflow the stack, but objects instances are not duplicated, then PreserveReferences won't help, MaxDepth will.
MaxDepth is predictable, it stops at a hardcoded value, PreserveReferences stops only when an object instance is duplicated.