1
0
mirror of https://github.com/JKorf/CryptoExchange.Net synced 2025-06-07 16:06:15 +00:00

Added support for duplicate array indexes in System.Text.Json ArrayConverter

This commit is contained in:
Jkorf 2024-10-09 15:41:43 +02:00
parent 7239b9c289
commit 71ee263683

View File

@ -94,13 +94,15 @@ namespace CryptoExchange.Net.Converters.SystemTextJson
if (reader.TokenType == JsonTokenType.EndArray) if (reader.TokenType == JsonTokenType.EndArray)
break; break;
var attribute = attributes.SingleOrDefault(a => a.ArrayProperty.Index == index); var indexAttributes = attributes.Where(a => a.ArrayProperty.Index == index);
if (attribute == null) if (!indexAttributes.Any())
{ {
index++; index++;
continue; continue;
} }
foreach (var attribute in indexAttributes)
{
var targetType = attribute.TargetType; var targetType = attribute.TargetType;
object? value = null; object? value = null;
if (attribute.JsonConverterType != null) if (attribute.JsonConverterType != null)
@ -129,6 +131,7 @@ namespace CryptoExchange.Net.Converters.SystemTextJson
} }
attribute.PropertyInfo.SetValue(result, value == null ? null : Convert.ChangeType(value, targetType, CultureInfo.InvariantCulture)); attribute.PropertyInfo.SetValue(result, value == null ? null : Convert.ChangeType(value, targetType, CultureInfo.InvariantCulture));
}
index++; index++;
} }