public override int Read(byte[] buffer, int offset, int count)
{
int read = 0;
if (_storedOffset < _storedLength)
{
read = Math.Min(count, _storedLength - _storedOffset);
Buffer.BlockCopy(_storedBuffer, _storedOffset, buffer, offset, read);
_storedOffset += read;
if (read == count || !_readMore)
{
return read;
}
offset += read;
count -= read;
}
return read + base.Read(buffer, offset, count);
}