C# implementation of PushbackInputStream
<p>I need a C# implementation of Java's PushbackInputStream. I have made my own very basic one, but I wondered if there was a well tested and decently performing version already available somewhere. As it happens I always push back the same bytes I read so really it just needs to be able to reposition backwards, buffering up to a number of bytes I specify. (like Java's BufferedInputStream with the mark and reset methods).</p>

<p><strong>Update:</strong> I should add that I can't simply reposition the stream as CanSeek may be false. (e.g. when the input steam is a <a href="http://msdn.microsoft.com/en-us/library/system.net.sockets.networkstream.canseek.aspx" rel="nofollow">NetworkStream</a>)</p>
