in src/RecyclableMemoryStream.cs [1223:1248]
public override long Seek(long offset, SeekOrigin loc)
{
this.CheckDisposed();
long newPosition;
switch (loc)
{
case SeekOrigin.Begin:
newPosition = offset;
break;
case SeekOrigin.Current:
newPosition = offset + this.position;
break;
case SeekOrigin.End:
newPosition = offset + this.length;
break;
default:
throw new ArgumentException("Invalid seek origin.", nameof(loc));
}
if (newPosition < 0)
{
throw new IOException("Seek before beginning.");
}
this.position = newPosition;
return this.position;
}