public override long Seek(long offset, SeekOrigin origin) { switch (origin) { case SeekOrigin.Begin: file.Seek(offset); break; case SeekOrigin.Current: file.Seek(file.GetPosition() + offset); break; case SeekOrigin.End: file.SeekEnd(offset); break; default: throw new ArgumentOutOfRangeException(nameof(origin), origin, null); } return file.GetPosition(); }