我正在尝试从我的webapi端点返回一个流,然后通过丢弃流进行清理。
我希望这是正确的方法,但当然在返回之前处理流。
using(var stream = GetStream()){
var response = new HttpResponseMessage();
response.Content = new StreamContent(stream);
return response;
}
处理流的正确方法是什么?
(由于MSDN没有说明StreamContent或其方法的行为,我的临时解决方案是将流的内容复制到字节数组并返回它。)
答案 0 :(得分:33)
由于您需要处理的唯一资源是HttpResponseMessage
的内容,您不必担心它。该框架为您处理。它会处理HttpResponseMessage
,它将完成所需的所有处理。删除使用它应该工作正常。
HttpResponseMessage将在处置时处置其内容。 见.NET Core implementation
StreamContent将在处理它时处理它的流。 见.NET Core implementation of StreamContent
如果您需要处置HttpResponseMessage未处理的内容,您可以request.RegisterForDispose
fork