返回流是否安全?

时间:2011-11-10 00:09:01

标签: c# stream httpwebresponse

我有一个包装类,它有一个方法可以关闭并从Web服务器下载文件并需要返回所述文件。 HttpWebResponse对象返回正文的Stream。

我应该退回一个流吗?或者我应该将其转换为字节数组并返回它?

这个包装类可能在几个地方使用,所以我需要一个可靠的方法来返回文件。在每种情况下,文件将在从适配器类接收后保存在某处。

2 个答案:

答案 0 :(得分:3)

简短回答:是的,没关系。

答案很长:是的,返回Stream是完全安全的。垃圾收集器在.NET中是智能的,您不必担心Stream被处置或任何事情。 (也就是说,除非你打电话给Dispose() - 如果你打算重新使用它,你不应该这样做。)

答案 1 :(得分:2)

返回Stream对象完全有效。代码的责任是调用返回流的方法来处理它。问题是:在你的包装器方法中配置响应对象还配置了流吗?如果是,则将其内容复制到MemoryStream或制作临时文件,然后将开放流返回给它。