VersionConverter sealed class VersionConverter : JsonConverter<Version> Documentation Code namespace System.Text.Json.Serialization.Converters { internal sealed class VersionConverter : JsonConverter<Version> { public override Version Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) { if (reader.TokenType != JsonTokenType.String) ThrowHelper.ThrowInvalidOperationException_ExpectedString(reader.TokenType); string string = reader.GetString(); if (!string.IsNullOrEmpty(string) && (!char.IsDigit(string[0]) || !char.IsDigit(string[string.Length - 1]))) ThrowHelper.ThrowFormatException(DataType.Version); if (Version.TryParse(string, out Version result)) return result; ThrowHelper.ThrowJsonException(null); return null; } public override void Write(Utf8JsonWriter writer, Version value, JsonSerializerOptions options) { writer.WriteStringValue(value.ToString()); } } }