public override void Write(byte[] buffer, int offset, int count)
{
var nToWrite = 0;
var bufOffset = offset;
while (count > 0)
{
Seek(_position, SeekOrigin.Begin);
nToWrite = Math.Min(count, _buffer.Capacity - (int)_buffer.Position);
_buffer.Write(buffer, bufOffset, nToWrite);
count -= nToWrite;
bufOffset += nToWrite;
_position += nToWrite;
_fileInfo.Length = Math.Max(_position, _fileInfo.Length);
Flush();
}
}