public override System.ServiceModel.Channels.Message ReadMessage(ArraySegment <byte> buffer, BufferManager bufferManager, string contentType) { // Decode Message byte[] bytes = buffer.Array; bytes = Encoding.DecodePackage(bytes); byte[] bufferedBytes = bufferManager.TakeBuffer(bytes.Length); Array.Copy(bytes, 0, bufferedBytes, 0, bytes.Length); buffer = new ArraySegment <byte>(bufferedBytes); // End Decode ArraySegment <byte> decompressedBuffer = GZipStream.DecompressBuffer(buffer, bufferManager); System.ServiceModel.Channels.Message returnMessage = _innerEncoder.ReadMessage(decompressedBuffer, bufferManager); returnMessage.Properties.Encoder = this; return(returnMessage); }