public override long Seek(long offset, SeekOrigin origin)
{
if (_isBuffering)
{
if (origin != SeekOrigin.Begin)
{
throw new ArgumentException(nameof(origin), nameof(Seek) + " can only be set to " + nameof(SeekOrigin.Begin) + ".");
}
if (offset != 0)
{
throw new ArgumentOutOfRangeException(nameof(offset), offset, nameof(Seek) + " can only be set to 0.");
}
_buffer.SetLength(offset);
return _buffer.Seek(offset, origin);
}
// Try the inner stream instead, but this will usually fail.
return _innerStream.Seek(offset, origin);
}