This adds an additional CI target for .NET Framework on Windows. I’m removing the netcoreapp3.1 target introduced in #269 as .NET Core 3.1 is out of support; we can evaluate additional targets if we discover issues that aren’t caught by this configuration.
Testing against .NET Framework surfaced a few issues:
The ConvertValueInInvariantCulture property is not available on RangeAnnotation in .NET Framework 4.6.2; I fenced that property with 2fffc7b5e601cf579086f37a574610d892efd6d8.
JsonSerializer.Deserialize<JsonDocument>(...) only works on .NET 5 or better (#270). JsonDocument.Parse works across the board, so a6ce06eee465d56b76a792f61cc21b1962f84c8b uses that instead.
The JSON union deserializer builder could generate an empty switch; fixed with fcb5709fe40afb58b862218b26c34003a9e873da.
Implicit conversions between ArraySegment<T> and T[] were not introduced until .NET Standard 2.1, so deserialization to ArraySegment<T> fails on earlier versions (#272). The fix for that is nuanced enough to be addressed separately, so for now I’m fencing those tests.
This adds an additional CI target for .NET Framework on Windows. I’m removing the netcoreapp3.1 target introduced in #269 as .NET Core 3.1 is out of support; we can evaluate additional targets if we discover issues that aren’t caught by this configuration.
Testing against .NET Framework surfaced a few issues:
ConvertValueInInvariantCulture
property is not available onRangeAnnotation
in .NET Framework 4.6.2; I fenced that property with 2fffc7b5e601cf579086f37a574610d892efd6d8.JsonSerializer.Deserialize<JsonDocument>(...)
only works on .NET 5 or better (#270).JsonDocument.Parse
works across the board, so a6ce06eee465d56b76a792f61cc21b1962f84c8b uses that instead.ArraySegment<T>
andT[]
were not introduced until .NET Standard 2.1, so deserialization toArraySegment<T>
fails on earlier versions (#272). The fix for that is nuanced enough to be addressed separately, so for now I’m fencing those tests.cc @fabianoliver