Как транслировать Http-ответ с помощью специального форматера ответа
У меня есть контроллер REST, который передает ответ в формате CSV, используя вспомогательный метод, как показано ниже:
public static void CsvStreamHelper(IEnumerable<T> data, Stream stream)
{
using (var writer = new StreamWriter(stream))
{
foreach (var line in data)
{
// format csv lines here
writer.WriteLine(lineString);
}
writer.Flush();
}
}
Затем я использую это в моем контроллере, как:
public Task<IActionResult> MyController()
{
var data = // Get data here.
CsvStreamHelper(data, this.HttpContext.Response.Body);
return new EmptyResult();
}
Это работает нормально. Тем не менее, я хотел бы использовать промежуточное программное обеспечение для согласования контента с пользовательским форматером, как здесь, при продолжении потокового ответа.
Я могу переопределить WriteResponseBodyAsync
метод с использованием моего вспомогательного метода. В чем я не уверен, так это в том, что я использую его в своем контроллере Rest this.Ok(data)
вместо потоковой передачи ответа он просто создает ответ и отправляет его в одном фрагменте. Как я могу добиться потокового ответа с помощью промежуточного программного обеспечения для согласования контента?