ReferenceLoopHandling setting

April 6, 2024 ยท View on GitHub

This sample sets Argon.ReferenceLoopHandling to Ignore so that looping values are excluded from serialization instead of throwing an exception.

public class Employee
{
    public string Name { get; set; }
    public Employee Manager { get; set; }
}

snippet source | anchor

var joe = new Employee {Name = "Joe User"};
var mike = new Employee {Name = "Mike Manager"};
joe.Manager = mike;
mike.Manager = mike;

var json = JsonConvert.SerializeObject(joe, Formatting.Indented, new JsonSerializerSettings
{
    ReferenceLoopHandling = ReferenceLoopHandling.Ignore
});

Console.WriteLine(json);
// {
//   "Name": "Joe User",
//   "Manager": {
//     "Name": "Mike Manager"
//   }
// }

snippet source | anchor