in Chemistry/src/DataModel/Serialization/JsonConverters/FermionWavefunctionJsonConverter.cs [47:76]
public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
{
Debug.Assert(CanConvert(objectType));
var keyType = objectType.GetBasestType().GetGenericArguments()[0];
var valueType = objectType.GetBasestType().GetGenericArguments()[1];
var tupleType = typeof(ValueTuple<,>).MakeGenericType(keyType, valueType);
var dictionaryType = typeof(Dictionary<,>).MakeGenericType(keyType, valueType);
var result = (IDictionary)Activator.CreateInstance(dictionaryType);
if (reader.TokenType == JsonToken.Null)
return null;
while (reader.Read())
{
if (reader.TokenType == JsonToken.EndArray)
{
return result;
}
if (reader.TokenType == JsonToken.StartObject)
{
dynamic item = serializer.Deserialize(reader, tupleType);
result.Add(item.Item1, item.Item2);
}
}
return result;
}