【问题标题】:Is it safe to return a stream?返回流是否安全?
【发布时间】:2011-11-10 00:09:00
【问题描述】:

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

我应该返回一个流吗?还是应该将其转换为字节数组并返回?

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

【问题讨论】:

    标签: c# stream httpwebresponse


    【解决方案1】:

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

    长答案:是的,返回 Stream 是完全安全的。垃圾收集器在 .NET 中很智能,您不必担心 Stream 被处理掉或其他任何事情。 (也就是说,除非你在上面调用Dispose()——如果你打算重用它,你不应该这样做。)

    【讨论】:

    • 非常喜欢。只是想要一些安慰,因为我不经常处理直播,也不确定我是否犯了一些更大的失礼。
    【解决方案2】:

    返回Stream 对象是完全有效的。调用方法返回流的代码将负责处理它。问题是:在包装方法中处理响应对象是否也会处理流?如果是这样,则将其内容复制到MemoryStream 或制作一个临时文件并将打开的流返回给它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-03-14
      • 2016-10-26
      • 2014-01-05
      • 1970-01-01
      • 1970-01-01
      • 2012-10-01
      • 2020-03-09
      • 2021-02-03
      相关资源
      最近更新 更多