gpt4 book ai didi

c# - 反序列化 XML - 值对于无符号字节来说太大或太小

转载 作者:太空宇宙 更新时间:2023-11-03 19:02:16 29 4
gpt4 key购买 nike

我正在使用他们的 API 从 SagePay 下载交易数据。调用的结果为我提供了一个 XML 字符串,然后我将其反序列化并存储在一个类中。

每次调用最多检索 50 条记录,我多次调用给定的 datetime跨度,直到检索到所有记录。这对于第一个 X 调用工作正常,但随后出现错误:

An unhandled exception of type 'System.InvalidOperationException' occurred in System.Xml.dll

Additional information: There is an error in XML document (1, 141).

Inner Exception: {"Value was either too large or too small for an unsigned byte."}

XML document (1, 141). 中的值每次尝试并不总是保持不变。如果我在这个位置看角色,我看不出有什么不对。

在此示例中,字符 141 是 <totalrows> 中的“t” :

<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?><vspaccess><errorcode>0000</errorcode><transactions><startrow>251</startrow><endrow>300</endrow><totalrows>16684</totalrows>

<startrow> 251 表明在这个错误的调用之前有 5 个成功的调用。

反序列化代码:

XmlSerializer serializer = new XmlSerializer(typeof(vspaccess));
StringReader rdr = new StringReader(xmlDoc.InnerXml);
vspaccess sageTransactions = (vspaccess)serializer.Deserialize(rdr);

vspaccess是VS2013生成的类(选择性粘贴)

我错过了什么?

我显然不能发布所有 XML,因为它是实时交易信息,但如果我遗漏了任何必需的信息,请告诉我

最佳答案

阅读错误。无符号字节的最大大小为 255——因此 300 的值就太大了。

16684 也太大了。不要卡在错误报告的列号上。查看错误消息和您正在加载的内容。

关于c# - 反序列化 XML - 值对于无符号字节来说太大或太小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34207545/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com