在WebOperationContext中返回流时,是否关闭流

本文关键字:是否 返回 WebOperationContext | 更新日期: 2023-09-27 18:29:58

我将以流的形式返回一些图像,作为WebOperationContext.Current.CreateStreamResponse()的一部分

我想知道这个框架是否在这个流返回后处理它的关闭。或者,作为响应的一部分,为了正确地关闭流,您必须做一些事情。

谢谢。

在WebOperationContext中返回流时,是否关闭流

根据我的发现,CreateStreamResponse()返回一个Message,它实现了IDisposable,因此最好将返回的对象封装在using语句中。这样应该可以正确地关闭流。

在这里实现using不是一个解决方案,我遇到了返回内容巨大(3 MB)的情况,因为我将WebOperationContext.Current.CreateStreamResponse()封装在using语句中,所以在内容完成之前流就被关闭了,因此客户端的响应是空白的。

我所做的只是将流输出复制到一个字符串中,并在using wrap中使用WebOperationContext.Current.CreateTextResponse()。