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

标签 c# xml opayo

我正在使用他们的 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/

相关文章:

c# - 我如何获取 C# 程序中所有 T-SQL 保留关键字的列表

php - PHP XML-找出已知值的路径

python - XML 文件解析 - 从子级的子级获取数据

paypal - 我使用哪个 URL 来 "COMPLETE"SagePay 模拟器上的 PayPal 交易?

opayo - SagePay Form从2.23升级到3.00 - 模拟交易和其他问题

.net - SagePay 直接集成套件 v4.00

c# - 在 WPF 中查找字形的像素大小

C# UDP Socket 客户端和服务器

c# - MVC 5 项目中的 Entity Framework 6.0 不工作

c# - 将 Dictionary<string, string> 转换为 xml 的简单方法,反之亦然