阅读量: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
来处理循环引用,序列化和反序列化对象。