public override int Read(byte[] buffer, int offset, int count) { count = Math.Min(count, (int)(Length - Position)); return stream.Read(buffer, offset, count); }