Skip to content

Commit

Permalink
Update JsonSerializerInternalWriter.cs
Browse files Browse the repository at this point in the history
  • Loading branch information
SimonCropp committed Nov 8, 2024
1 parent 766c3dc commit c05e5d9
Showing 1 changed file with 8 additions and 8 deletions.
16 changes: 8 additions & 8 deletions src/Argon/Serialization/JsonSerializerInternalWriter.cs
Original file line number Diff line number Diff line change
@@ -867,12 +867,12 @@ bool ShouldWriteType(TypeNameHandling typeNameHandlingFlag, JsonContract contrac
void SerializeDictionary(JsonWriter writer, IDictionary values, JsonDictionaryContract contract, JsonProperty? member, JsonContainerContract? collectionContract, JsonProperty? containerProperty)
{
#pragma warning disable CS8600, CS8602, CS8604
var underlyingDictionary = values is IWrappedDictionary wrappedDictionary ? wrappedDictionary.UnderlyingDictionary : values;
var underlying = values is IWrappedDictionary wrappedDictionary ? wrappedDictionary.UnderlyingDictionary : values;

OnSerializing(writer, underlyingDictionary);
serializeStack.Add(underlyingDictionary);
OnSerializing(writer, underlying);
serializeStack.Add(underlying);

WriteObjectStart(writer, underlyingDictionary, contract, member, collectionContract, containerProperty);
WriteObjectStart(writer, underlying, contract, member, collectionContract, containerProperty);

contract.ItemContract ??= Serializer.ContractResolver.ResolveContract(contract.DictionaryValueType ?? typeof(object));

@@ -892,30 +892,30 @@ static IEnumerable<DictionaryEntry> Items(IDictionary values)
{
foreach (var entry in Items(values).OrderBy(_ => ((string) _.Key, StringComparer.OrdinalIgnoreCase)))
{
SerializeDictionaryItem(writer, contract, member, entry.Key, entry.Value, keyContract, underlyingDictionary);
SerializeDictionaryItem(writer, contract, member, entry.Key, entry.Value, keyContract, underlying);
}
}
else
{
foreach (var entry in Items(values).OrderBy(_ => _.Key))
{
SerializeDictionaryItem(writer, contract, member, entry.Key, entry.Value, keyContract, underlyingDictionary);
SerializeDictionaryItem(writer, contract, member, entry.Key, entry.Value, keyContract, underlying);
}
}
}
else
{
foreach (DictionaryEntry entry in values)
{
SerializeDictionaryItem(writer, contract, member, entry.Key, entry.Value, keyContract, underlyingDictionary);
SerializeDictionaryItem(writer, contract, member, entry.Key, entry.Value, keyContract, underlying);
}
}

writer.WriteEndObject();

serializeStack.RemoveAt(serializeStack.Count - 1);

OnSerialized(writer, underlyingDictionary);
OnSerialized(writer, underlying);
#pragma warning restore CS8600, CS8602, CS8604
}

0 comments on commit c05e5d9

Please sign in to comment.