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

本文关键字:XML- 无符号 字节 反序列化 | 更新日期: 2023-09-27 18:26:23

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

每次调用最多检索50条记录,我在给定的datetime范围内进行多次调用,直到检索到所有记录。这对第一个X调用来说很好,但后来我得到了一个错误:

System.Xml.dll 中发生"System.InvalidOperationException"类型的未处理异常

附加信息:XML文档(1141)中存在错误。

内部异常:{值对于无符号字节来说太大或太小。}

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

在该示例中,字符141是";t〃;在<totalrows>:中

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

251的<startrow>显示,在这个出错的调用之前已经进行了5次成功调用。

反序列化代码:

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

vspaccess是VS2013(粘贴特殊)生成的类

我错过了什么?

我显然不能发布所有的XML,因为它是实时事务信息,但如果我错过了任何需要的信息,请告诉我

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

读取错误。无符号字节的最大大小是255,所以300的值太大了。

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