JavaScriptSerializer Deserialize Throws System.OutOfMemoryEx

本文关键字:OutOfMemoryEx System Throws Deserialize JavaScriptSerializer | 更新日期: 2023-09-27 18:34:45

我在获取大约 17 MB 的 PPTX 文件数组时使用了下面的代码(如果任何文件小于 15 MB,这就可以正常工作(。在jss.Deserialize行,它抛出错误"类型为'System.OutOfMemoryException'的异常">

JavaScriptSerializer jss = new JavaScriptSerializer { MaxJsonLength = 2147483644, RecursionLimit = 100 };
var requestJson = jss.Serialize(new { serverRelativeUrl = serverRelativeUrl, token = token });
WebClient wClient = new WebClient();
wClient.Headers["Content-Type"] = "text/json; charset=utf-8";
var data = wClient.UploadData(serviceMethodURL, "POST", Encoding.UTF8.GetBytes(requestJson));
var responseJson = Encoding.UTF8.GetString(data);
var response = jss.Deserialize<MethodResponse<byte[]>>(responseJson);

知道吗?我被困住了。请帮忙

JavaScriptSerializer Deserialize Throws System.OutOfMemoryEx

我通过使用解决了它

MethodResponse<byte[]> response = null;
using (System.IO.MemoryStream stream1 = new System.IO.MemoryStream(data))
{
    System.Runtime.Serialization.Json.DataContractJsonSerializer ser = new System.Runtime.Serialization.Json.DataContractJsonSerializer(typeof(MethodResponse<byte[]>));
    stream1.Position = 0;
    response = (MethodResponse<byte[]>)ser.ReadObject(stream1);
}
return response;