title: Is it safe to use Stream.Seek when a BinaryReader is open?
body: <p>Because of the under the hood buffering strategy of BinaryReader, it is unclear to me whether is it ok or not to read an offset stored in a stream, then reposition the stream at this offset to resume the streaming.</p>
  
  <p>As an example, is the following code ok: </p>
  
  <pre><code>using (var reader = new CustomBinaryReader(inputStream))
  {
     var offset= reader.ReadInt32();
     reader.BaseStream.Seek(offset, SeekOrigin.Begin);
  
     //Then resume reading the streaming
  }
  </code></pre>
  
  <p>Or should I close the first binary reader before Seeking the stream and then reopen a second reader ?</p>
  
  <pre><code>int offset;
  using (var firstReader = new CustomBinaryReader(inputStream))
  {
     offset= firstReader.ReadInt32();
  }
  inputStream.Seek(offset, SeekOrigin.Begin);
  using (var secondReader = new CustomBinaryReader(inputStream))
  {
     //Then resume reading the streaming
  }
  </code></pre>