示例#1
0
        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);
            }
        }
示例#2
0
        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);
            }
        }