The idea is to avoid that NullRecursionBehavior decides the default depth. That is up to the RecursionGuard. I could also have used some magic value, e.g. -1, but I preferred a nullable. I could of course also define the default value in RecursionGuard as a public and use that in the constructor of NullRecursionBehavior.