Я пытался реализовать подкласс ActionResult, который будет передавать большие объекты JSON из REST API, я нашел это решение при переполнении стека, но похоже, что это реализация для asp.net MVC.
public class JsonStreamingResult : ActionResult
{
private IEnumerable itemsToSerialize;
public JsonStreamingResult(IEnumerable itemsToSerialize)
{
this.itemsToSerialize = itemsToSerialize;
}
public override void ExecuteResult(ActionContext context)
{
var response = context.HttpContext.Response;
response.ContentType = "application/json";
response.ContentEncoding = Encoding.UTF8;
JsonSerializer serializer = new JsonSerializer();
using (StreamWriter sw = new StreamWriter(response.OutputStream))
using (JsonTextWriter writer = new JsonTextWriter(sw))
{
writer.WriteStartArray();
foreach (object item in itemsToSerialize)
{
JObject obj = JObject.FromObject(item, serializer);
obj.WriteTo(writer);
writer.Flush();
}
writer.WriteEndArray();
}
}
}
Но когда я находился в процессе переноса этого на ядро asp.net MVC, я обнаружил, что класс ответа не имеет ContentEncoding и OutputStream свойств.
Пожалуйста, кто-нибудь может предоставить необходимые изменения для переноса этого класса в ядро asp.net?
Заранее спасибо.