使用
PushStreamContent。与其让Web API从流中“拉”,不如让它更直观地“推入”其中。
object value = ...;PushStreamContent content = new PushStreamContent((stream, httpContent, transportContext) =>{ using (var tw = new StreamWriter(stream)) { JsonSerializer ser = new JsonSerializer(); ser.Serialize(tw, value); }});
请注意,JSON.NET在序列化过程中不支持异步,因此虽然这可能会提高内存效率,但是扩展性却不高。
不过,我建议您尝试避免使用如此大的JSON对象。例如,如果您要通过一个大集合发送邮件,请尝试对其进行分块。如果没有特殊处理,许多客户/服务器都会拒绝这么大的东西。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)