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

JsonSerializerContext

public abstract class JsonSerializerContext
Provides metadata about a set of types that is relevant to JSON serialization.
using System.ComponentModel; using System.Runtime.CompilerServices; using System.Text.Json.Serialization.Metadata; namespace System.Text.Json.Serialization { [System.Runtime.CompilerServices.NullableContext(1)] [System.Runtime.CompilerServices.Nullable(0)] [EditorBrowsable(EditorBrowsableState.Never)] public abstract class JsonSerializerContext { private bool? _canUseSerializationLogic; internal JsonSerializerOptions _options; public JsonSerializerOptions Options { get { if (_options == null) { _options = new JsonSerializerOptions(); _options._context = this; } return _options; } } internal bool CanUseSerializationLogic { get { if (!_canUseSerializationLogic.HasValue) { if (GeneratedSerializerOptions == null) _canUseSerializationLogic = false; else _canUseSerializationLogic = (Options.Converters.Count == 0 && Options.Encoder == null && (Options.NumberHandling & (JsonNumberHandling.WriteAsString | JsonNumberHandling.AllowNamedFloatingPointLiterals)) == JsonNumberHandling.Strict && Options.ReferenceHandlingStrategy == ReferenceHandlingStrategy.None && !Options.IgnoreNullValues && Options.DefaultIgnoreCondition == GeneratedSerializerOptions.DefaultIgnoreCondition && Options.IgnoreReadOnlyFields == GeneratedSerializerOptions.IgnoreReadOnlyFields && Options.IgnoreReadOnlyProperties == GeneratedSerializerOptions.IgnoreReadOnlyProperties && Options.IncludeFields == GeneratedSerializerOptions.IncludeFields && Options.PropertyNamingPolicy == GeneratedSerializerOptions.PropertyNamingPolicy && Options.DictionaryKeyPolicy == GeneratedSerializerOptions.DictionaryKeyPolicy && Options.WriteIndented == GeneratedSerializerOptions.WriteIndented); } return _canUseSerializationLogic.Value; } } [System.Runtime.CompilerServices.Nullable(2)] protected abstract JsonSerializerOptions GeneratedSerializerOptions { [System.Runtime.CompilerServices.NullableContext(2)] get; } [System.Runtime.CompilerServices.NullableContext(2)] protected JsonSerializerContext(JsonSerializerOptions options) { if (options != null) { if (options._context != null) ThrowHelper.ThrowInvalidOperationException_JsonSerializerOptionsAlreadyBoundToContext(); _options = options; options._context = this; } } [return: System.Runtime.CompilerServices.Nullable(2)] public abstract JsonTypeInfo GetTypeInfo(Type type); } }