Как транслировать Http-ответ с помощью специального средства форматирования ответов? - PullRequest
0 голосов
/ 23 января 2019

У меня есть контроллер 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), вместо потоковой передачи ответа, он просто создаст ответ и отправит его в одном фрагменте. Как я могу добиться потокового ответа с помощью программного обеспечения для согласования контента?

...