我的应用程序连接到 2 个不同的服务器,它们以字符串形式返回 xml 格式的响应。然后我将字符串反序列化为一个对象。这适用于服务器 1。但是当我从服务器 2 接收到 xml 字符串时它失败了。响应 xml 的唯一区别是<OAR>
标签。Server1 返回标签,<OAR>0</OAR>
其中 server2 返回 null 值<OAR/>
。当试图反序列化它时,它失败了:
从 SERVER2 的 XML 响应中提取
<PaymentFreq>000</PaymentFreq>
<AvailableBalance>
<Amt>0.00</Amt>
</AvailableBalance>
<AcctBranch>629</AcctBranch>
<OAR />
C#代码:
XmlSerializer xs = new XmlSerializer(typeof(AccountListInqRsCIF));
StringReader reader = new StringReader(message);
acctListInqRs = (AccountListInqRsCIF)xs.Deserialize(reader);
例外:
{“输入字符串的格式不正确。”}
“XML 文档中存在错误 (1, 3028)。”
在 System.Number.StringToNumber(String str, NumberStyles options, NumberBuffer& number, NumberFormatInfo info, Boolean parseDecimal)
在 System.Number.ParseInt32(String s, NumberStyles style, NumberFormatInfo info) 在 System.Xml.XmlConvert.ToInt32(String s)
在 Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReaderAccountListInqRsCIF.Read31_AcctSummType(Boolean isNullable, Boolean checkType) 在 Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReaderAccountListInqRsCIF.Read32_AcctListInqRsCIF(Boolean isNullable, Boolean checkType)