Пример #1
0
 public virtual SubArray <byte> Compress(SubArray <byte> source)
 {
     using (var msDes = new MemoryStream())
     {
         using (var msOrg = source.ToMemoryStream())
             Compress(msOrg, msDes);
         return(msDes.ToSubArray());
     }
 }
Пример #2
0
 public virtual async Task <SubArray <byte> > DecompressAsync(SubArray <byte> source)
 {
     using (var msDes = new MemoryStream())
     {
         using (var msOrg = source.ToMemoryStream())
             await DecompressAsync(msOrg, msDes).ConfigureAwait(false);
         return(msDes.ToSubArray());
     }
 }
Пример #3
0
        public static SerializedObject FromSubArray(SubArray <byte> byteArray)
        {
            if (byteArray.Count == 0)
            {
                return(null);
            }
            using (var ms = byteArray.ToMemoryStream())
                using (var br = new BinaryReader(ms))
                {
                    var rByte = byteArray.Count;

                    var dataTypeByteLength = br.ReadInt32();
                    if (dataTypeByteLength < -1 || dataTypeByteLength > rByte)
                    {
                        return(null);
                    }
                    var dataTypeByte = dataTypeByteLength != -1 ? br.ReadBytes(dataTypeByteLength) : null;
                    rByte -= dataTypeByteLength;

                    var serializerMimeTypeByteLength = br.ReadInt32();
                    if (serializerMimeTypeByteLength < -1 || serializerMimeTypeByteLength > rByte)
                    {
                        return(null);
                    }
                    var serializerMimeTypeByte = serializerMimeTypeByteLength != -1 ? br.ReadBytes(serializerMimeTypeByteLength) : null;
                    rByte -= serializerMimeTypeByteLength;

                    var dataLength = br.ReadInt32();
                    if (dataLength < -1 || dataLength > rByte)
                    {
                        return(null);
                    }
                    var data = dataLength != -1 ? br.ReadBytes(dataLength) : null;

                    return(new SerializedObject(data,
                                                dataTypeByte != null ? Encoding.UTF8.GetString(dataTypeByte) : null,
                                                serializerMimeTypeByte != null ? Encoding.UTF8.GetString(serializerMimeTypeByte) : null));
                }
        }
Пример #4
0
 public object Deserialize(SubArray <byte> value, Type valueType)
 => Deserialize(value.ToMemoryStream(), valueType);