Exemplo n.º 1
0
        /// <summary>
        /// 用protocolbuff来解码/反序列化
        /// </summary>
        /// <param name="bytes"></param>
        /// <returns></returns>
        public static object ProtoBufDecode <T>(byte[] bytes)
        {
            object obj = null;

            using (MemoryStream memoryStream1 = new MemoryStream(bytes, false))
                using (MemoryStream memoryStream2 = new MemoryStream())
                {
                    SerializeUtil.Decompress((Stream)memoryStream1, (Stream)memoryStream2);
                    obj = Serializer.Deserialize <T>(memoryStream2);
                }
            return((T)obj);
        }
Exemplo n.º 2
0
        /// <summary>
        /// 用protocolbuff来解码/反序列化
        /// </summary>
        /// <param name="bytes"></param>
        /// <returns></returns>
        public static object ProtoBufDecode(byte[] bytes, Type type)
        {
            object obj = null;

            using (MemoryStream memoryStream1 = new MemoryStream(bytes, false))
                using (MemoryStream memoryStream2 = new MemoryStream())
                {
                    SerializeUtil.Decompress((Stream)memoryStream1, (Stream)memoryStream2);
                    obj = RuntimeTypeModel.Default.Deserialize(memoryStream2, null, type);
                }
            return(obj);
        }
Exemplo n.º 3
0
        /// <summary>
        /// 反序列化
        /// </summary>
        /// <param name="value"></param>
        /// <returns></returns>
        public static object decode(byte[] value)
        {
            object obj = null;

            using (MemoryStream memoryStream1 = new MemoryStream(value, false))
                using (MemoryStream memoryStream2 = new MemoryStream())
                {
                    //流一解压缩到流二
                    SerializeUtil.Decompress((Stream)memoryStream1, (Stream)memoryStream2);
                    //流二序列化到obj
                    obj = new BinaryFormatter().Deserialize((Stream)memoryStream2);
                }
            return(obj);
        }