【发布时间】:2011-11-10 00:09:00
【问题描述】:
我有一个包装类,它有一个方法可以从 Web 服务器下载文件并需要返回所述文件。 HttpWebResponse 对象为正文返回一个 Stream。
我应该返回一个流吗?还是应该将其转换为字节数组并返回?
这个包装类可以用在几个地方,所以我需要一个可靠的方法来返回文件。在任何情况下,从适配器类接收文件后,文件都会保存在某处。
【问题讨论】:
标签: c# stream httpwebresponse
我有一个包装类,它有一个方法可以从 Web 服务器下载文件并需要返回所述文件。 HttpWebResponse 对象为正文返回一个 Stream。
我应该返回一个流吗?还是应该将其转换为字节数组并返回?
这个包装类可以用在几个地方,所以我需要一个可靠的方法来返回文件。在任何情况下,从适配器类接收文件后,文件都会保存在某处。
【问题讨论】:
标签: c# stream httpwebresponse
简短回答:是的,没关系。
长答案:是的,返回 Stream 是完全安全的。垃圾收集器在 .NET 中很智能,您不必担心 Stream 被处理掉或其他任何事情。 (也就是说,除非你在上面调用Dispose()——如果你打算重用它,你不应该这样做。)
【讨论】:
返回Stream 对象是完全有效的。调用方法返回流的代码将负责处理它。问题是:在包装方法中处理响应对象是否也会处理流?如果是这样,则将其内容复制到MemoryStream 或制作一个临时文件并将打开的流返回给它。
【讨论】: