我正在使用他们的API从SagePay下载交易数据.调用的结果给了我一个XML字符串,然后我反序列化并存储在一个类中.
每次调用检索最多50条记录,我在给定datetime
范围内进行多次调用,直到检索到所有记录.这适用于前X次调用,但后来出现错误:
System.Xml.dll中发生了未处理的"System.InvalidOperationException"类型异常
附加信息:XML文档中存在错误(1,141).
内部异常:{"对于无符号字节,值太大或太小."}
XML document (1, 141).
每次尝试时,值并不总是保持不变.如果我看看这个位置上的角色,我看不出有什么不对.
在这个例子中,字符141是"t"
:
0000 251 300 16684
在
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也将是大的.不要挂断错误报告的列号.查看错误消息以及您要加载的内容.