Что именно делает ReferenceLoopHandling.Ignore в Newtonsoft.json?

Может ли кто-нибудь представить мне сценарий, где его можно использовать. Под ReferenceLoopHandling.Ignore я понимаю, что если у вас есть объект A, который ссылается на объект B, а B ссылается на C, а C снова ссылается на A (A -> B -> C ->A ), то при сериализации он попадет в бесконечный цикл между C и A, чего можно избежать, используя приведенное ниже. Я прав?

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

У меня возникла проблема с циклом самореференции, которая решается с помощью вышеизложенного, но я хочу точно понять, что он делает, поскольку приведенная выше строка — это мясо приложения (критическое мясо)

29
задан Ahmed Salama 21 July 2016 в 10:03
поделиться