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); }
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())); }
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)); }
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()); }
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 }
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);