public override void SerializeToJson(TOwner owner, Utf8JsonWriter writer) { var instance = getter(owner); if (instance == null) { writer.WriteNullValue(); } else if (instance.GetType() == typeof(TPropertyType)) { SerializationMap <TPropertyType> .SerializeToJson(instance, writer); } else { SerializationMap.GetSerializationMap(instance.GetType()).SerializeToJson(instance, writer); } }
public override void DeserializeFromJson(TOwner owner, ref Utf8JsonReader reader, DeserializationContext context) { if (reader.TokenType == JsonTokenType.Null) { return; } var instance = getter(owner); if (instance.GetType() == typeof(TPropertyType)) { SerializationMap <TPropertyType> .PopulateFromJson(getter(owner), ref reader, context); } else { SerializationMap.GetSerializationMap(instance.GetType()).PopulateFromJson(instance, ref reader, context); } }