谁能给我一个可以使用它的场景。我通过 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 序列化引用循环中的对象。如果对象是 嵌套但不是无限期的。