/// <summary> /// 序列化 /// </summary> /// <param name="value"></param> /// <returns></returns> public static byte[] encode(object value) { byte[] array = null; using (MemoryStream memoryStream1 = new MemoryStream()) using (MemoryStream memoryStream2 = new MemoryStream()) { //序列化流一 new BinaryFormatter().Serialize((Stream)memoryStream1, value); //流一压缩到流二 SerializeUtil.Compress((Stream)memoryStream1, (Stream)memoryStream2); array = memoryStream2.ToArray(); } return(array); }
/// <summary> /// 用protocolbuff来编码/序列化 /// </summary> /// <param name="obj"></param> /// <returns></returns> public static byte[] ProteBufEncode(object obj) { byte[] bytes = null; using (MemoryStream memoryStream1 = new MemoryStream()) using (MemoryStream memoryStream2 = new MemoryStream()) { RuntimeTypeModel.Default.Serialize(memoryStream1, obj); SerializeUtil.Compress((Stream)memoryStream1, (Stream)memoryStream2); memoryStream2.Position = 0; int lenth = (int)memoryStream2.Length; bytes = new byte[lenth]; memoryStream2.Read(bytes, 0, lenth); } return(bytes); }