O que o ReferenceLoopHandling.Ignore no Newtonsoft.json faz exatamente?

Alguém pode me apresentar um cenário em que possa ser usado. O que eu entendo porReferênciaLoopHandling.Ignore é se você tiver um objeto A que referencia as referências de objeto B e B C e C novamente referencia A (A-> B-> C-> A), então ao serializar, terminará em loop infinito entre C e A, que pode ser evitado usando abaixo. Estou certo?

 JsonConvert.SerializeObject(data, 
     Formatting.Indented, 
     new JsonSerializerSetting()
         {
             ReferenceLoopHandling = ReferenceLoopHandling.Ignore 
         } 
 ));

Eu estou tendo problema de loop de auto-referência que é resolvido usando o acima, mas eu quero entender exatamente o que está fazendo como a linha acima é a carne do aplicativo (carne crítica)

questionAnswers(1)

yourAnswerToTheQuestion