<PackageReference Include="System.Text.Json" Version="10.0.0-rc.1.25451.107" />

JsonValueOfJsonNumber

using System.Buffers.Text; using System.Diagnostics.CodeAnalysis; namespace System.Text.Json.Nodes { internal sealed class JsonValueOfJsonNumber : JsonValue { private readonly byte[] _value; internal JsonValueOfJsonNumber(byte[] number, JsonNodeOptions? options) : base(options) { _value = number; } internal override JsonNode DeepCloneCore() { return new JsonValueOfJsonNumber(_value, base.Options); } private protected override JsonValueKind GetValueKindCore() { return JsonValueKind.Number; } public override T GetValue<T>() { if (!TryGetValue(out T value)) ThrowHelper.ThrowInvalidOperationException_NodeUnableToConvertElement(JsonValueKind.Number, typeof(T)); return value; } public override bool TryGetValue<T>([NotNullWhen(true)] out T value) { if (typeof(T) == typeof(JsonElement)) { value = (T)(object)JsonElement.Parse(_value, default(JsonDocumentOptions)); return true; } if (typeof(T) == typeof(int) || typeof(T) == typeof(int?)) { int value2; int bytesConsumed; bool result = Utf8Parser.TryParse(_value, out value2, out bytesConsumed, '') && bytesConsumed == _value.Length; value = (T)(object)value2; return result; } if (typeof(T) == typeof(long) || typeof(T) == typeof(long?)) { long value3; int bytesConsumed2; bool result2 = Utf8Parser.TryParse(_value, out value3, out bytesConsumed2, '') && bytesConsumed2 == _value.Length; value = (T)(object)value3; return result2; } if (typeof(T) == typeof(double) || typeof(T) == typeof(double?)) { double value4; int bytesConsumed3; bool result3 = Utf8Parser.TryParse(_value, out value4, out bytesConsumed3, '') && bytesConsumed3 == _value.Length; value = (T)(object)value4; return result3; } if (typeof(T) == typeof(short) || typeof(T) == typeof(short?)) { short value5; int bytesConsumed4; bool result4 = Utf8Parser.TryParse(_value, out value5, out bytesConsumed4, '') && bytesConsumed4 == _value.Length; value = (T)(object)value5; return result4; } if (typeof(T) == typeof(decimal) || typeof(T) == typeof(decimal?)) { decimal value6; int bytesConsumed5; bool result5 = Utf8Parser.TryParse(_value, out value6, out bytesConsumed5, '') && bytesConsumed5 == _value.Length; value = (T)(object)value6; return result5; } if (typeof(T) == typeof(byte) || typeof(T) == typeof(byte?)) { byte value7; int bytesConsumed6; bool result6 = Utf8Parser.TryParse(_value, out value7, out bytesConsumed6, '') && bytesConsumed6 == _value.Length; value = (T)(object)value7; return result6; } if (typeof(T) == typeof(float) || typeof(T) == typeof(float?)) { float value8; int bytesConsumed7; bool result7 = Utf8Parser.TryParse(_value, out value8, out bytesConsumed7, '') && bytesConsumed7 == _value.Length; value = (T)(object)value8; return result7; } if (typeof(T) == typeof(uint) || typeof(T) == typeof(uint?)) { uint value9; int bytesConsumed8; bool result8 = Utf8Parser.TryParse(_value, out value9, out bytesConsumed8, '') && bytesConsumed8 == _value.Length; value = (T)(object)value9; return result8; } if (typeof(T) == typeof(ushort) || typeof(T) == typeof(ushort?)) { ushort value10; int bytesConsumed9; bool result9 = Utf8Parser.TryParse(_value, out value10, out bytesConsumed9, '') && bytesConsumed9 == _value.Length; value = (T)(object)value10; return result9; } if (typeof(T) == typeof(ulong) || typeof(T) == typeof(ulong?)) { ulong value11; int bytesConsumed10; bool result10 = Utf8Parser.TryParse(_value, out value11, out bytesConsumed10, '') && bytesConsumed10 == _value.Length; value = (T)(object)value11; return result10; } if (typeof(T) == typeof(sbyte) || typeof(T) == typeof(sbyte?)) { sbyte value12; int bytesConsumed11; bool result11 = Utf8Parser.TryParse(_value, out value12, out bytesConsumed11, '') && bytesConsumed11 == _value.Length; value = (T)(object)value12; return result11; } value = default(T); return false; } public override void WriteTo(Utf8JsonWriter writer, JsonSerializerOptions options = null) { ArgumentNullException.ThrowIfNull(writer, "writer"); writer.WriteNumberValue(_value); } } }