我试图将图像转换为字节数组,但它会使应用程序崩溃。
错误是这样的:
反序列化对象时出错。读取XML数据时已超出最大数组长度配额(16384)。通过更改创建XML阅读器时使用的XmlDictionaryReaderQuotas对象的MaxArrayLength属性,可以增加此配额
这是我的代码:
if (dr["Photo"] != DBNull.Value)
{
rider.Photo = (byte[])dr["Photo"];
}
有更好的方法吗?有什么用吗?
修改:所以,我认为这与图像尺寸太大而无法通过网络服务有关。我编辑了webconfig文件并更改了ReaderQuotes标记值,如下所示:
<readerQuotas maxDepth="32" maxStringContentLength="2147483647" maxArrayLength="2147483647"
maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" />
即使这样,输出也是一样的。
答案 0 :(得分:0)
这可以解决问题
z <- merge(cars, voyages, by="car_id")
z <- z[as.Date(z$since)<=as.Date(z$date),]
z <- z[order(as.Date(z$since), decreasing=TRUE),]
z <- z[!duplicated(z$voy_id),]
我相信if (dr["Photo"] != DBNull.Value)
{
Byte[] data = (Byte[])(dr["Photo"]);
MemoryStream mem = new MemoryStream(data);
rider.Photo = Image.FromStream(mem);
}
而不是.Photo
您可以查看The maximum array length quota (16384) has been exceeded