Как эффективно вернуть большой массив значений в json и асинхронно в действии ASP.NET Core? - PullRequest
0 голосов
/ 09 ноября 2018

Я ищу лучший способ вернуть большую коллекцию данных (без нумерации страниц) в json с помощью действия ASP.NET Core?

Я определил лучший способ как:

  • Неблокирование: возврат асинхронный (ожидание / асинхронность), включая форматирование / сериализацию JSON
  • Избегать временного размещения всей коллекции в теле метода

Я подумал о решении ниже: допустим, мы создаем наш собственный настраиваемый сериализатор json, который выполняет (через JsonWriter: https://www.newtonsoft.com/json/help/html/T_Newtonsoft_Json_JsonWriter.htm) сериализацию асинхронно заданной IEnumerable<int> и записывает ее непосредственно в ответ объемный поток:

[HttpGet]
public async Task<IEnumerable<int>> GetAsync()
{
     using(var jsonStream = _myService.GetJsonStreamAsync())
     {
         await jsonStream.CopyToAsync(HttpContext.Response.Body);
     }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...