C# deserializeobject怎么处理循环引用

avatar
作者
筋斗云
阅读量:0

在 C# 中,处理循环引用可以通过使用 JsonSerializerSettings 中的 PreserveReferencesHandling 属性来实现。这个属性用来指定在序列化和反序列化对象时如何处理循环引用。

你可以通过以下代码来处理循环引用:

using System; using Newtonsoft.Json;  public class MyClass {     public string Name { get; set; }     public MyClass Friend { get; set; } }  class Program {     static void Main()     {         MyClass obj1 = new MyClass { Name = "Object 1" };         MyClass obj2 = new MyClass { Name = "Object 2" };          obj1.Friend = obj2;         obj2.Friend = obj1;          JsonSerializerSettings settings = new JsonSerializerSettings         {             PreserveReferencesHandling = PreserveReferencesHandling.Objects         };          string json = JsonConvert.SerializeObject(obj1, settings);         Console.WriteLine(json);          MyClass deserializedObj1 = JsonConvert.DeserializeObject<MyClass>(json, settings);         Console.WriteLine(deserializedObj1.Name);         Console.WriteLine(deserializedObj1.Friend.Name);     } } 

在上面的例子中,我们定义了一个 MyClass 类,它包含一个 Friend 属性,用来表示对象之间的循环引用。然后我们通过设置 PreserveReferencesHandling.Objects 来处理循环引用,序列化和反序列化对象。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!