public static MemoryStream SaveToJson <T>(T obj) where T : ModelObject { var ms = new MemoryStream(); using (var writer = new Utf8JsonWriter(ms)) SerializationMap <T> .SerializeToJson(obj, writer); ms.Position = 0; return(ms); }
public override void SerializeToJson(TOwner owner, Utf8JsonWriter writer) { var list = getter(owner); writer.WriteStartArray(); foreach (var elem in list) { SerializationMap <TElement> .SerializeToJson(elem, writer); } writer.WriteEndArray(); }
public static T LoadFromJson <T>(ReadOnlySpan <byte> buffer, ModelObject owner, ErrorCollector collector) where T : ModelObject { var reader = new Utf8JsonReader(buffer); reader.Read(); var context = new DeserializationContext(collector); var result = SerializationMap <T> .DeserializeFromJson(owner, ref reader, context); context.Notify(); return(result); }
public override void DeserializeFromJson(TOwner owner, ref Utf8JsonReader reader, DeserializationContext context) { if (reader.TokenType == JsonTokenType.Null) { return; } var instance = getter(owner); if (instance == null) { setter(owner, SerializationMap <TPropertyType> .DeserializeFromJson(owner, ref reader, context)); return; } base.DeserializeFromJson(owner, ref reader, context); }
public static T LoadFromJson <T>(byte[] buffer, ModelObject owner, ErrorCollector collector, int bufferLength = -1) where T : ModelObject { if (bufferLength == -1) { bufferLength = buffer.Length; } var reader = new Utf8JsonReader(new ReadOnlySequence <byte>(buffer, 0, bufferLength)); reader.Read(); var context = new DeserializationContext(collector); var result = SerializationMap <T> .DeserializeFromJson(owner, ref reader, context); context.Notify(); return(result); }
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); } }
public override void DeserializeFromJson(TOwner owner, ref Utf8JsonReader reader, DeserializationContext context) { var list = getter(owner); list.Clear(); if (reader.ReadStartArray()) { while (reader.TokenType != JsonTokenType.EndArray) { var elem = SerializationMap <TElement> .DeserializeFromJson(owner, ref reader, context); if (elem != null) { list.Add(elem); } reader.Read(); } } }
public override void PopulateFromJson(object target, ref Utf8JsonReader reader, DeserializationContext context) { SerializationMap <T> .PopulateFromJson(target as T, ref reader, context); }
public override void SerializeToJson(object target, Utf8JsonWriter writer) { SerializationMap <T> .SerializeToJson(target as T, writer); }
public override void WriteToJson(Utf8JsonWriter writer, T value) => SerializationMap <T> .SerializeToJson(value, writer);
public override T ReadFromJson(ref Utf8JsonReader reader, DeserializationContext context) => SerializationMap <T> .DeserializeFromJson(null, ref reader, context);