在Newtonsoft.json中,ReferenceLoopHandling.Ignore究竟做了什么?

任何人都可以向我展示可以使用它的场景。 我通过ReferenceLoopHandling.Ignore理解的是,如果你有一个对象A引用对象B和B引用C和C再次引用A(A-> B-> C-> A),那么在序列化时,它将最终无穷无尽在C和A之间循环,可以使用下面的方法避免。 我对吗?

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

我有自我引用循环问题,通过使用上面的问题得到解决,但我想知道它正在做什么,因为上面的行是应用程序的关键(关键肉)

有关此文档,请访问: http : //james.newtonking.com/projects/json/help/html/SerializationSettings.htm

在撰写本文时,行为描述如下(强调我的):

ReferenceLoopHandling.Error :默认情况下,如果遇到引用循环,Json.NET将会出错(否则序列化程序将进入无限循环)。

ReferenceLoopHandling.Ignore :Json.NET将忽略引用循环中的对象而不是序列化它们。 第一次遇到对象时,它将像往常一样进行序列化,但如果对象作为自身的子对象遇到,则序列化程序将跳过序列化它。

ReferenceLoopHandling.Serialize :此选项强制Json.NET序列化引用循环中的对象。 如果对象嵌套但不是无限期,这很有用。