反序列化response.Result.Content.ReadAsStreamAsync()以使响应超过400 mb时出现内存不足异常

问题描述 投票:0回答:1

如何反序列化为大约2GB的对象。

将100000条记录添加到列表后出现内存不足异常。

请让我知道是否有其他方法可以在列表对象或字符串中返回大约900000条记录?

var repsonse = httpClient.PostAsync(url,content);
List<object> lstObj = new List<object>();

using (var responseStream = response.Result.Content.ReadAsStreamAsync().Result)
{
    using (var textReader = new StreamReader(responseStream))
    {
        using (var jsonReader = new JsonTextReader(textReader))
        {
            while (jsonReader.Read())
            {
                object o = serializer.Deserialize<object>(jsonReader);
                lstObj.Add(o);
            }
        }
    }
}
c# memory-management json.net json-deserialization httpresponsemessage
1个回答
-1
投票

如果确实需要在内存中加载2gb的对象,请转到项目属性,您需要选择Target platform“ AnyCpu”,以便可以在64位上运行并使用内存enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.