C# Newtonsoft.json中的ReferenceLoopHandling.Ignore究竟做什么?
谁能给我一个可以使用它的场景。 我通过ReferenceLoopHandling.Ignore所理解的是,如果有一个对象A引用了对象B,B引用了C,而C又引用了A(A->B->C->A),那么在序列化时,它将在C和A之间无限循环,这是可以避免的。我说得对吗C# Newtonsoft.json中的ReferenceLoopHandling.Ignore究竟做什么?,c#,.net,json,json.net,C#,.net,Json,Json.net,谁能给我一个可以使用它的场景。 我通过ReferenceLoopHandling.Ignore所理解的是,如果有一个对象A引用了对象B,B引用了C,而C又引用了A(A->B->C->A),那么在序列化时,它将在C和A之间无限循环,这是可以避免的。我说得对吗 JsonConvert.SerializeObject(data, Formatting.Indented, new JsonSerializerSetting() { R
JsonConvert.SerializeObject(data,
Formatting.Indented,
new JsonSerializerSetting()
{
ReferenceLoopHandling = ReferenceLoopHandling.Ignore
}
));
我有一个自引用循环问题,通过使用上述方法可以解决,但我想确切地了解它在做什么,因为上面这一行是应用程序的核心部分(关键部分)有关此问题的文档可在此处获得: 在撰写本文时,行为描述如下(重点是我的):
ReferenceLoopHandling.Error
:默认情况下,如果
遇到引用循环(否则序列化程序将进入
无限循环)
ReferenceLoopHandling.Ignore
:Json.NET将忽略中的对象
引用循环,而不是序列化它们第一次创建对象时
遇到此问题时,它将像往常一样序列化,但如果对象是
作为自身的子对象遇到序列化程序将跳过
正在序列化它。
ReferenceLoopHandling.Serialize
:此选项强制Json.NET
序列化引用循环中的对象。如果对象是
嵌套但不是无限期的
在PreserveReferencesHandling的情况下会发生什么