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