【发布时间】:2014-12-16 20:58:37
【问题描述】:
我在满足用于处置 MemoryStream 对象的代码分析规则时遇到问题。
这是我现在的代码:
byte[] bytes;
MemoryStream stream = new MemoryStream();
using (CryptoStream cs = new CryptoStream(stream, transform, CryptoStreamMode.Write))
{
cs.Write(buffer, 0, buffer.Length);
}
bytes = stream.ToArray();
stream.Close();
return bytes;
这会导致警告说流可能被释放两次,或者可能不被释放(每个警告一个)。
我也尝试将其包装到 using(MemoryStream stream = new MemoryStream()) 块中。这会导致前一个警告。
最后,删除对Close() 或Dispose() 的调用会导致后一个警告。
有没有办法同时满足这两个条件?我认为问题是可能会关闭它的异常路径,但我对这些类的工作方式不是很熟悉。
【问题讨论】: