Не стоит ли читать поток, закончить? - PullRequest
0 голосов
/ 21 ноября 2018

Почему чтение Response.Content.ReadAsStreamAsync() не мешает записи вывода на клиент?

Резюме: у меня есть ActionFilter в приложении ASP.NET WebAPI 2, которое я читаю весь поток вывода вActionExecuted событие.Вот пример кода:

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

То, что я ожидаю после этого, это пустой вывод , но в конце концов весь вывод отправляется клиенту.Что мне здесь не хватает?Не следует ли читать поток, завершить его?

1 Ответ

0 голосов
/ 21 ноября 2018

К сожалению, он не очищает ответ после вызова этого метода, он просто сериализует ответ и возвращает Stream , представляющий сериализованное содержимое (см. HttpContent.ReadAsStreamAsync Method )

Если вы хотите очистить ответ, вы можете попытаться установить значение свойства Content ответа для нового экземпляра одного из классов, полученных из HttpContent .

Надеюсь, это поможет!

...