Exemple #1
0
        public T[,,,] Deserialize(ref MessagePackReader reader, IFormatterResolver formatterResolver)
        {
            if (reader.IsNil())
            {
                return(null);
            }

            var formatter = formatterResolver.GetFormatterWithVerify <T>();

            var len = reader.ReadArrayHeader();

            if (len != ArrayLength)
            {
                ThrowHelper.ThrowInvalidOperationException_T_Format3();
            }

            var iLength = reader.ReadInt32();
            var jLength = reader.ReadInt32();
            var kLength = reader.ReadInt32();
            var lLength = reader.ReadInt32();
            var maxLen  = reader.ReadArrayHeader();

            var array = new T[iLength, jLength, kLength, lLength];

            var i = 0;
            var j = 0;
            var k = 0;
            var l = -1;

            for (int loop = 0; loop < maxLen; loop++)
            {
                if (l < lLength - 1)
                {
                    l++;
                }
                else if (k < kLength - 1)
                {
                    l = 0;
                    k++;
                }
                else if (j < jLength - 1)
                {
                    l = 0;
                    k = 0;
                    j++;
                }
                else
                {
                    l = 0;
                    k = 0;
                    j = 0;
                    i++;
                }

                array[i, j, k, l] = formatter.Deserialize(ref reader, formatterResolver);
            }

            return(array);
        }
Exemple #2
0
        public void ByteArraySegmentTest(ArraySegment <byte> t, ArraySegment <byte>?t2, byte[] reference)
        {
            MessagePackSerializer.Serialize(t).Is(MessagePackSerializer.Serialize(reference));
            ((ArraySegment <byte>)Convert(t)).Array.Is(reference);
            var reader = new MessagePackReader(MessagePackSerializer.Serialize(t2));

            reader.IsNil().IsTrue();
        }
 public Version Deserialize(ref MessagePackReader reader, IFormatterResolver formatterResolver)
 {
     if (reader.IsNil())
     {
         return(null);
     }
     return(new Version(reader.ReadString()));
 }
 public StringBuilder Deserialize(ref MessagePackReader reader, IFormatterResolver formatterResolver)
 {
     if (reader.IsNil())
     {
         return(null);
     }
     return(new StringBuilder(reader.ReadString()));
 }
Exemple #5
0
 public SByte?Deserialize(ref MessagePackReader reader, IFormatterResolver formatterResolver)
 {
     if (reader.IsNil())
     {
         return(null);
     }
     return(reader.ReadSByte());
 }
 public Uri Deserialize(ref MessagePackReader reader, IFormatterResolver formatterResolver)
 {
     if (reader.IsNil())
     {
         return(null);
     }
     return(new Uri(reader.ReadString(), UriKind.RelativeOrAbsolute));
 }
 public Task Deserialize(ref MessagePackReader reader, IFormatterResolver formatterResolver)
 {
     if (reader.IsNil())
     {
         return(CompletedTask);
     }
     ThrowHelper.ThrowInvalidOperationException_Input(); return(null);
 }
        public T?Deserialize(ref MessagePackReader reader, IFormatterResolver formatterResolver)
        {
            if (reader.IsNil())
            {
                return(null);
            }

            return(formatterResolver.GetFormatterWithVerify <T>().Deserialize(ref reader, formatterResolver));
        }
        public CultureInfo Deserialize(ref MessagePackReader reader, IFormatterResolver formatterResolver)
        {
            if (reader.IsNil())
            {
                return(CultureInfo.InvariantCulture);
            }

            return(new CultureInfo(MessagePackBinary.ResolveString(reader.ReadUtf8Span())));
        }
        public Task <T> Deserialize(ref MessagePackReader reader, IFormatterResolver formatterResolver)
        {
            if (reader.IsNil())
            {
                return(null);
            }

            var v = formatterResolver.GetFormatterWithVerify <T>().Deserialize(ref reader, formatterResolver);

            return(Task.FromResult(v));
        }
        public Lazy <T> Deserialize(ref MessagePackReader reader, IFormatterResolver formatterResolver)
        {
            if (reader.IsNil())
            {
                return(null);
            }

            // deserialize immediately(no delay, because capture byte[] causes memory leak)
            var v = formatterResolver.GetFormatterWithVerify <T>().Deserialize(ref reader, formatterResolver);

            return(new Lazy <T>(() => v));
        }
Exemple #12
0
        public IPAddress Deserialize(ref MessagePackReader reader, IFormatterResolver formatterResolver)
        {
            if (reader.IsNil())
            {
                return(null);
            }

#if NETCOREAPP
            var addressBytes = reader.ReadSpan();
            return(new IPAddress(addressBytes));
#else
            var addressBytes = reader.ReadBytes();
            return(new IPAddress(addressBytes));
#endif
        }
        public BitArray Deserialize(ref MessagePackReader reader, IFormatterResolver formatterResolver)
        {
            if (reader.IsNil())
            {
                return(null);
            }

            var len   = reader.ReadArrayHeader();
            var array = new BitArray(len);

            for (int i = 0; i < len; i++)
            {
                array[i] = reader.ReadBoolean();
            }
            return(array);
        }
        public String[] Deserialize(ref MessagePackReader reader, IFormatterResolver typeResolver)
        {
            if (reader.IsNil())
            {
                return(null);
            }

            var len   = reader.ReadArrayHeader();
            var array = new String[len];

            for (int i = 0; i < array.Length; i++)
            {
                array[i] = reader.ReadString();
            }
            return(array);
        }
        public DateTime[] Deserialize(ref MessagePackReader reader, IFormatterResolver formatterResolver)
        {
            if (reader.IsNil())
            {
                return(null);
            }

            var len   = reader.ReadArrayHeader();
            var array = new DateTime[len];

            for (int i = 0; i < array.Length; i++)
            {
                var dateData = reader.ReadInt64();
                array[i] = DateTime.FromBinary(dateData);
            }
            return(array);
        }
        public T[] Deserialize(ref MessagePackReader reader, IFormatterResolver formatterResolver)
        {
            if (reader.IsNil())
            {
                return(null);
            }

            var formatter = formatterResolver.GetFormatterWithVerify <T>();

            var len   = reader.ReadArrayHeader();
            var array = new T[len];

            for (int i = 0; i < array.Length; i++)
            {
                array[i] = formatter.Deserialize(ref reader, formatterResolver);
            }
            return(array);
        }
        public Tuple <T1> Deserialize(ref MessagePackReader reader, IFormatterResolver formatterResolver)
        {
            if (reader.IsNil())
            {
                return(null);
            }

            var count = reader.ReadArrayHeader();

            if (count != 1)
            {
                ThrowHelper.ThrowInvalidOperationException_Tuple_Count();
            }

            var item1 = formatterResolver.GetFormatterWithVerify <T1>().Deserialize(ref reader, formatterResolver);

            return(new Tuple <T1>(item1));
        }
        public ImmutableArray <T> Deserialize(ref MessagePackReader reader, IFormatterResolver formatterResolver)
        {
            if (reader.IsNil())
            {
                return(ImmutableArray <T> .Empty);
            }

            var formatter = formatterResolver.GetFormatterWithVerify <T>();

            var len = reader.ReadArrayHeader();

            var builder = ImmutableArray.CreateBuilder <T>(len);

            for (int i = 0; i < len; i++)
            {
                builder.Add(formatter.Deserialize(ref reader, formatterResolver));
            }

            return(builder.ToImmutable());
        }
Exemple #19
0
        public IPEndPoint Deserialize(ref MessagePackReader reader, IFormatterResolver formatterResolver)
        {
            if (reader.IsNil())
            {
                return(null);
            }

            var count = reader.ReadArrayHeader();

            if (count != c_count)
            {
                ThrowHelper.ThrowInvalidOperationException_IPEndPoint_Format();
            }

            var port = reader.ReadInt32();

#if NETCOREAPP
            var addressBytes = reader.ReadSpan();
            return(new IPEndPoint(new IPAddress(addressBytes), port));
#else
            var addressBytes = reader.ReadBytes();
            return(new IPEndPoint(new IPAddress(addressBytes), port));
#endif
        }
Exemple #20
0
 public override T Deserialize(ref MessagePackReader reader, IFormatterResolver formatterResolver)
 {
     if (reader.IsNil())
     {
         return(default);
 public ArraySegment <byte> Deserialize(ref MessagePackReader reader, IFormatterResolver formatterResolver)
 {
     if (reader.IsNil())
     {
         return(default);