Пример #1
0
        public override object Read(BinaryReader reader, byte type)
        {
            switch (type)
            {
                #region Decimal
            case DataType.Decimal:
                var v1 = reader.ReadDecimal();
                DecimalCache.DeserializerSet(v1);
                return(v1);

            case DataType.DecimalDefault:
                return(default(decimal));

            case DataType.RefDecimalByte:
                return(DecimalCache.DeserializerGet(reader.ReadByte()));

            case DataType.RefDecimalUShort:
                return(DecimalCache.DeserializerGet(reader.ReadUInt16()));

                #endregion

                #region Double
            case DataType.Double:
                var v2 = reader.ReadDouble();
                DoubleCache.DeserializerSet(v2);
                return(v2);

            case DataType.DoubleDefault:
                return(default(double));

            case DataType.RefDoubleByte:
                return(DoubleCache.DeserializerGet(reader.ReadByte()));

            case DataType.RefDoubleUShort:
                return(DoubleCache.DeserializerGet(reader.ReadUInt16()));

                #endregion

                #region Float
            case DataType.Float:
                var v3 = reader.ReadSingle();
                FloatCache.DeserializerSet(v3);
                return(v3);

            case DataType.FloatDefault:
                return(default(float));

            case DataType.RefFloatByte:
                return(FloatCache.DeserializerGet(reader.ReadByte()));

            case DataType.RefFloatUShort:
                return(FloatCache.DeserializerGet(reader.ReadUInt16()));

                #endregion

                #region Long
            case DataType.Long:
                var v4 = reader.ReadInt64();
                LongCache.DeserializerSet(v4);
                return(v4);

            case DataType.RefLongByte:
                return(LongCache.DeserializerGet(reader.ReadByte()));

            case DataType.RefLongUShort:
                return(LongCache.DeserializerGet(reader.ReadUInt16()));

                #endregion

                #region ULong
            case DataType.ULong:
                var v5 = reader.ReadUInt64();
                ULongCache.DeserializerSet(v5);
                return(v5);

            case DataType.RefULongByte:
                return(ULongCache.DeserializerGet(reader.ReadByte()));

            case DataType.RefULongUShort:
                return(ULongCache.DeserializerGet(reader.ReadUInt16()));

                #endregion

                #region Int
            case DataType.Int:
                var v6 = reader.ReadInt32();
                IntCache.DeserializerSet(v6);
                return(v6);

            case DataType.RefIntByte:
                return(IntCache.DeserializerGet(reader.ReadByte()));

            case DataType.RefIntUShort:
                return(IntCache.DeserializerGet(reader.ReadUInt16()));

                #endregion

                #region UInt
            case DataType.UInt:
                var v7 = reader.ReadUInt32();
                UIntCache.DeserializerSet(v7);
                return(v7);

            case DataType.RefUIntByte:
                return(UIntCache.DeserializerGet(reader.ReadByte()));

            case DataType.RefUIntUShort:
                return(UIntCache.DeserializerGet(reader.ReadUInt16()));

                #endregion

                #region Short
            case DataType.Short:
                var v8 = reader.ReadInt16();
                ShortCache.DeserializerSet(v8);
                return(v8);

            case DataType.RefShortByte:
                return(ShortCache.DeserializerGet(reader.ReadByte()));

                #endregion

                #region UShort
            case DataType.UShort:
                var v9 = reader.ReadUInt16();
                UShortCache.DeserializerSet(v9);
                return(v9);

            case DataType.RefUShortByte:
                return(UShortCache.DeserializerGet(reader.ReadByte()));

                #endregion

                #region Byte
            case DataType.Byte:
                return(reader.ReadByte());

            case DataType.ByteDefault:
                return((byte)0);

            case DataType.Byte1:
                return((byte)1);

            case DataType.Byte2:
                return((byte)2);

            case DataType.Byte3:
                return((byte)3);

            case DataType.Byte4:
                return((byte)4);

            case DataType.Byte5:
                return((byte)5);

            case DataType.Byte6:
                return((byte)6);

            case DataType.Byte7:
                return((byte)7);

            case DataType.Byte8:
                return((byte)8);

            case DataType.Byte9:
                return((byte)9);

            case DataType.Byte10:
                return((byte)10);

            case DataType.Byte11:
                return((byte)11);

            case DataType.Byte12:
                return((byte)12);

            case DataType.Byte13:
                return((byte)13);

            case DataType.Byte14:
                return((byte)14);

            case DataType.Byte15:
                return((byte)15);

            case DataType.Byte16:
                return((byte)16);

                #endregion

            //SByte
            case DataType.SByte:
                return(reader.ReadSByte());

            case DataType.SByteMinusOne:
                return(-1);
            }
            return(0);
        }