我正在尝试从我的webapi端点返回一个流,然后通过处理流来清理.
我希望这是正确的方法,但是当然在返回之前处理流.
using(var stream = GetStream()){ var response = new HttpResponseMessage(); response.Content = new StreamContent(stream); return response; }
处理流的正确方法是什么?
(由于MSDN没有说明StreamContent或其方法的行为,我的临时解决方案是将流的内容复制到字节数组并返回.)
由于您需要处理的唯一资源是HttpResponseMessage
您不必担心的内容.该框架为您处理.它将处理HttpResponseMessage
将进行所需的所有处理.删除使用它应该工作得很好.
HttpResponseMessage将在处置时处置其内容.请参阅.NET Core实现
StreamContent将在处理它时处理它的流.请参阅StreamContent的.NET Core实现
如果您需要处理HttpResponseMessage未处理的东西,您可以request.RegisterForDispose
按照Filip Woj的描述使用