using System.Text.Json; using System.Text.Json.Serialization; using NuGet.Versioning; namespace NuGet.Converters; public class VersionJsonConverter : JsonConverter { public override NuGetVersion? Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) { if (reader.TokenType != JsonTokenType.String) throw new JsonException("Invalid version string"); return NuGetVersion.Parse(reader.GetString()!); } public override void Write(Utf8JsonWriter writer, NuGetVersion value, JsonSerializerOptions options) { writer.WriteStringValue(value.ToString()); } }