<PackageReference Include="System.Text.Json" Version="9.0.1" />

ReferenceResolver

public abstract class ReferenceResolver
Defines how the JsonSerializer deals with references on serialization and deserialization. Defines the core behavior of preserving references on serialization and deserialization.
using System.Runtime.CompilerServices; namespace System.Text.Json.Serialization { [System.Runtime.CompilerServices.NullableContext(1)] [System.Runtime.CompilerServices.Nullable(0)] public abstract class ReferenceResolver { public abstract void AddReference(string referenceId, object value); public abstract string GetReference(object value, out bool alreadyExists); public abstract object ResolveReference(string referenceId); internal virtual void PopReferenceForCycleDetection() { throw new InvalidOperationException(); } internal virtual void PushReferenceForCycleDetection(object value) { throw new InvalidOperationException(); } internal virtual bool ContainsReferenceForCycleDetection(object value) { throw new InvalidOperationException(); } } }