public override long Seek(long offset, SeekOrigin origin)
{
this.ThrowIfDisposed();
long pos = 0;
if (origin == SeekOrigin.Begin)
{
pos = offset;
}
else if (origin == SeekOrigin.Current)
{
pos += this.position + offset;
}
else if (origin == SeekOrigin.End)
{
pos = this.length + offset;
}
this.SetPosition(pos);
return pos;
}