public override TestTarget Deserialize(ref MessagePackReader reader)
        {
            if (!reader.TryReadNil())
            {
                var value = new TestTarget();
                int count = reader.ReadMapHeader();

                for (int i = 0; i < count; i++)
                {
                    ArraySegment<byte> segment = reader.ReadStringSegment();

                    if (m_nameToKey.TryGetValue(segment.Array, segment.Offset, segment.Count, out int key))
                    {
                        switch (key)
                        {
                            case 0:
                            {
                                value.BoolValue = reader.ReadBoolean();
                                break;
                            }
                            case 1:
                            {
                                value.IntValue = reader.ReadInt32();
                                break;
                            }
                            case 2:
                            {
                                value.FloatValue = reader.ReadSingle();
                                break;
                            }
                            case 3:
                            {
                                value.StringValue = reader.ReadString();
                                break;
                            }
                            case 4:
                            {
                                value.EnumValue = m_formatterTypeCode.Deserialize(ref reader);
                                break;
                            }
                            default:
                            {
                                reader.ReadNextBlock();
                                break;
                            }
                        }
                    }
                    else
                    {
                        reader.ReadNextBlock();
                    }
                }
            }

            return default;
        }
示例#2
0
        public override TestTarget Deserialize(ref MessagePackReader reader)
        {
            if (!reader.TryReadNil())
            {
                var value = new TestTarget();
                int count = reader.ReadArrayHeader();

                for (int i = 0; i < count; i++)
                {
                    int key = reader.ReadInt32();

                    switch (key)
                    {
                    case 0:
                    {
                        value.BoolValue = reader.ReadBoolean();
                        break;
                    }

                    case 1:
                    {
                        value.IntValue = reader.ReadInt32();
                        break;
                    }

                    case 2:
                    {
                        value.FloatValue = reader.ReadSingle();
                        break;
                    }

                    case 3:
                    {
                        value.StringValue = reader.ReadString();
                        break;
                    }

                    case 4:
                    {
                        value.EnumValue = m_formatterTypeCode.Deserialize(ref reader);
                        break;
                    }

                    default:
                    {
                        reader.ReadNextBlock();
                        break;
                    }
                    }
                }

                return(value);
            }

            return(default);
 public T Deserialize(ref MessagePackReader reader, IFormatterResolver formatterResolver)
 {
     reader.ReadNextBlock();
     return(default);
        public DynamicArgumentTuple <T1, T2, T3, T4, T5, T6, T7, T8, T9> Deserialize(ref MessagePackReader reader, IFormatterResolver formatterResolver)
        {
            var length = reader.ReadArrayHeader();

            var item1 = default1;
            var item2 = default2;
            var item3 = default3;
            var item4 = default4;
            var item5 = default5;
            var item6 = default6;
            var item7 = default7;
            var item8 = default8;
            var item9 = default9;

            for (var i = 0; i < length; i++)
            {
                switch (i)
                {
                case 0:
                    item1 = formatterResolver.GetFormatterWithVerify <T1>().Deserialize(ref reader, formatterResolver);
                    break;

                case 1:
                    item2 = formatterResolver.GetFormatterWithVerify <T2>().Deserialize(ref reader, formatterResolver);
                    break;

                case 2:
                    item3 = formatterResolver.GetFormatterWithVerify <T3>().Deserialize(ref reader, formatterResolver);
                    break;

                case 3:
                    item4 = formatterResolver.GetFormatterWithVerify <T4>().Deserialize(ref reader, formatterResolver);
                    break;

                case 4:
                    item5 = formatterResolver.GetFormatterWithVerify <T5>().Deserialize(ref reader, formatterResolver);
                    break;

                case 5:
                    item6 = formatterResolver.GetFormatterWithVerify <T6>().Deserialize(ref reader, formatterResolver);
                    break;

                case 6:
                    item7 = formatterResolver.GetFormatterWithVerify <T7>().Deserialize(ref reader, formatterResolver);
                    break;

                case 7:
                    item8 = formatterResolver.GetFormatterWithVerify <T8>().Deserialize(ref reader, formatterResolver);
                    break;

                case 8:
                    item9 = formatterResolver.GetFormatterWithVerify <T9>().Deserialize(ref reader, formatterResolver);
                    break;

                default:
                    reader.ReadNextBlock();
                    break;
                }
            }

            return(new DynamicArgumentTuple <T1, T2, T3, T4, T5, T6, T7, T8, T9>(item1, item2, item3, item4, item5, item6, item7, item8, item9));
        }