public override void Flush()
{
if (_modified)
{
SourceStream.SetLength(0);
_stream.Position = 0;
StreamUtility.CopyStream(_stream, SourceStream);
_modified = false;
_sourcePositionReset = true;
_stream.Position = 0;
_sourceLength = _stream.Length;
}
}