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

JsonValuePrimitive<TValue>

sealed class JsonValuePrimitive<TValue> : JsonValue<TValue>
using System.Collections.Generic; using System.Text.Json.Serialization; namespace System.Text.Json.Nodes { internal sealed class JsonValuePrimitive<TValue> : JsonValue<TValue> { private readonly JsonConverter<TValue> _converter; private readonly JsonValueKind _valueKind; public JsonValuePrimitive(TValue value, JsonConverter<TValue> converter, JsonNodeOptions? options) : base(value, options) { _converter = converter; _valueKind = JsonValue<TValue>.DetermineValueKind(value); } private protected override JsonValueKind GetValueKindCore() { return _valueKind; } internal override JsonNode DeepCloneCore() { return new JsonValuePrimitive<TValue>(Value, _converter, base.Options); } internal override bool DeepEqualsCore(JsonNode otherNode) { JsonValue jsonValue = otherNode as JsonValue; if (jsonValue != null && jsonValue.TryGetValue<TValue>(out TValue value)) return EqualityComparer<TValue>.Default.Equals(Value, value); return base.DeepEqualsCore(otherNode); } public override void WriteTo(Utf8JsonWriter writer, JsonSerializerOptions options = null) { if (writer == null) ThrowHelper.ThrowArgumentNullException("writer"); JsonConverter<TValue> converter = _converter; if (options == null) options = JsonNode.s_defaultOptions; if (converter.IsInternalConverterForNumberType) converter.WriteNumberWithCustomHandling(writer, Value, options.NumberHandling); else converter.Write(writer, Value, options); } } }