public static Stream ReopenForWriting(this Stream stream)
{
if (stream.CanRead && stream.CanSeek && stream.CanWrite)
{
stream.Position = 0;
stream.SetLength(0);
return stream;
}
var fileStream = stream as FileStream;
if (fileStream != null)
{
return new FileStream(fileStream.Name, FileMode.Create, FileAccess.Write);
}
return new MemoryStream();
}