ReferenceHandling
using System.Runtime.CompilerServices;
namespace System.Text.Json.Serialization
{
[System.Runtime.CompilerServices.NullableContext(1)]
[System.Runtime.CompilerServices.Nullable(0)]
public sealed class ReferenceHandling
{
private readonly PreserveReferencesHandling _preserveHandlingOnSerialize;
private readonly PreserveReferencesHandling _preserveHandlingOnDeserialize;
public static ReferenceHandling Default { get; } = new ReferenceHandling(PreserveReferencesHandling.None);
public static ReferenceHandling Preserve { get; } = new ReferenceHandling(PreserveReferencesHandling.All);
private ReferenceHandling(PreserveReferencesHandling handling)
: this(handling, handling)
{
}
private ReferenceHandling(PreserveReferencesHandling preserveHandlingOnSerialize, PreserveReferencesHandling preserveHandlingOnDeserialize)
{
_preserveHandlingOnSerialize = preserveHandlingOnSerialize;
_preserveHandlingOnDeserialize = preserveHandlingOnDeserialize;
}
internal bool ShouldReadPreservedReferences()
{
return _preserveHandlingOnDeserialize == PreserveReferencesHandling.All;
}
internal bool ShouldWritePreservedReferences()
{
return _preserveHandlingOnSerialize == PreserveReferencesHandling.All;
}
}
}