不应该读一个流,结束它吗?

Shouldn't reading a stream, end it?

为什么读取 Response.Content.ReadAsStreamAsync() 不会阻止将输出写入客户端?

总结:我在 ASP.NET WebAPI 2 应用程序中有一个 ActionFilter,我正在 ActionExecuted 事件中读取整个输出流。这是示例代码:

var content = actionExecutedContext.Response.Content.ReadAsStreamAsync().Result;
byte[] buffer = new byte[content.Length];
content.Read(buffer, 0, (int)content.Length);

在那之后我期待的是一个空输出,但毕竟整个输出都将发送给客户端。我在这里错过了什么?不应该读一个流,结束它?

不幸的是,它在调用该方法后不会清空响应,它只是序列化响应和 returns 表示序列化内容的 Stream(请参阅 HttpContent.ReadAsStreamAsync Method)

如果您想清除响应,您可以尝试将响应的 Content 属性 的值设置为从 [= 派生的 类 之一的新实例12=].

希望对您有所帮助!