/// <summary>
        /// Jump a block of data using a base-128 length prefix.
        /// </summary>
        /// <param name="source">The input stream.</param>
        public static void SkipStringData(Stream source)
        {
            int bytesRead, bytesRemaining = (int)SerializationContext.DecodeUInt32(source);

            while (bytesRemaining > trashBuffer.Length && (bytesRead = source.Read(trashBuffer, 0, trashBuffer.Length)) > 0)
            {
                bytesRemaining -= bytesRead;
            }
            while (bytesRemaining > 0 && (bytesRead = source.Read(trashBuffer, 0, bytesRemaining)) > 0)
            {
                bytesRemaining -= bytesRead;
            }
            if (bytesRemaining != 0)
            {
                throw new EndOfStreamException();
            }
        }