Esempio n. 1
0
    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();
    }
Esempio n. 2
0
    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();
    }
Esempio n. 3
0
        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();
        }