public void Serialize(ref JsonWriter writer, SimplePerson value, IJsonFormatterResolver formatterResolver) { if (value == null) { writer.WriteNull(); return; } UnsafeMemory64.WriteRaw7(ref writer, nameCaches[0]); // optimize byte->byte copy we know src size. writer.WriteInt32(value.Age); UnsafeMemory64.WriteRaw13(ref writer, nameCaches[1]); writer.WriteString(value.FirstName); UnsafeMemory64.WriteRaw12(ref writer, nameCaches[2]); writer.WriteString(value.LastName); writer.WriteEndObject(); }
public void _SerializePattern2Test(ref JsonWriter writer, SimplePerson value, IJsonFormatterResolver formatterResolver) { if (value == null) { writer.WriteNull(); return; } bool wrote = false; writer.WriteBeginObject(); // if(value.Age != nul) { if (wrote == false) { wrote = true; writer.WriteValueSeparator(); } UnsafeMemory64.WriteRaw7(ref writer, nameCaches2[0]); writer.WriteInt32(value.Age); } if (value.FirstName != null) { if (wrote == false) { wrote = true; writer.WriteValueSeparator(); } UnsafeMemory64.WriteRaw13(ref writer, nameCaches2[1]); writer.WriteString(value.FirstName); } if (value.LastName != null) { if (wrote == false) { wrote = true; writer.WriteValueSeparator(); } UnsafeMemory64.WriteRaw12(ref writer, nameCaches2[2]); writer.WriteString(value.LastName); } writer.WriteEndObject(); }
public void Serialize(ref JsonWriter writer, Track track, IJsonFormatterResolver formatterResolver) { if (track == null) { writer.WriteNull(); return; } var dateTimeFormatter = formatterResolver.GetFormatter <DateTime>(); UnsafeMemory64.WriteRaw26(ref writer, this.stringByteKeys[0]); dateTimeFormatter.Serialize(ref writer, track.AddedToLibraryDateTime, formatterResolver); UnsafeMemory64.WriteRaw20(ref writer, this.stringByteKeys[1]); formatterResolver.GetFormatter <TrackAlbumAssociation>().Serialize(ref writer, track.AlbumAssociation, formatterResolver); UnsafeMemory64.WriteRaw9(ref writer, this.stringByteKeys[2]); IJsonFormatterHelper.SerializeList(ref writer, track.Composers, formatterResolver); UnsafeMemory64.WriteRaw12(ref writer, this.stringByteKeys[3]); formatterResolver.GetFormatter <TimeSpan?>().Serialize(ref writer, track.Duration, formatterResolver); UnsafeMemory64.WriteRaw17(ref writer, this.stringByteKeys[4]); formatterResolver.GetFormatter <ulong?>().Serialize(ref writer, track.FileSizeBytes, formatterResolver); UnsafeMemory64.WriteRaw11(ref writer, this.stringByteKeys[5]); writer.WriteBoolean(track.IsLoved); UnsafeMemory64.WriteRaw24(ref writer, this.stringByteKeys[6]); formatterResolver.GetFormatter <DateTime?>().Serialize(ref writer, track.LastModifiedDateTime, formatterResolver); UnsafeMemory64.WriteRaw12(ref writer, this.stringByteKeys[8]); formatterResolver.GetFormatter <Uri>().Serialize(ref writer, track.Location, formatterResolver); UnsafeMemory64.WriteRaw14(ref writer, this.stringByteKeys[9]); IJsonFormatterHelper.SerializeList(ref writer, track.Performers, formatterResolver); UnsafeMemory64.WriteRaw9(ref writer, this.stringByteKeys[10]); writer.WriteString(track.Title); UnsafeMemory64.WriteRaw8(ref writer, this.stringByteKeys[11]); formatterResolver.GetFormatter <uint?>().Serialize(ref writer, track.Year, formatterResolver); writer.WriteEndObject(); }