【发布时间】:2023-04-05 21:06:01
【问题描述】:
我正在从 Web 服务获取一些 XML。我建立了一些类来反序列化它。它部分工作;我得到任何SavingType 对象的原始成员的预期值。
正如代码所示,我得到一个应该有多个的 Saving 对象,并且它的字段为空。我对Savings 成员有一些注释属性(也许我应该更改这些名称)。这些属性似乎应该比我在那里的未注释的XmlElement 更正确,但是当我使用它们时,反序列化对象的Savings 成员始终是一个空数组。我的错误在哪里?
<Product xmlns="http://schemas.datacontract.org/2004/07/mInitechService" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
...
<AdvSaving>
<SavingType>...</SavingType>
<SavingType>...</SavingType>
<SavingType>
<Savings>
<Saving>
<apy>0.06</apy>
<dailyBalance>0.01</dailyBalance>
<divRate>0.06</divRate>
<name>Ultimate Checking </name>
</Saving>
<Saving>
<apy>0.10</apy>
<dailyBalance>10,000.00</dailyBalance>
<divRate>0.10</divRate>
<name>Ultimate Checking</name>
</Saving>
<Saving>
<apy>0.06</apy>
<dailyBalance>0.01</dailyBalance>
<divRate>0.06</divRate>
<name>Business Rewards Checking</name>
</Saving>
</Savings>
<savingNote>All rates are subject to change without prior notification. The APY figure assumes the principal and earned dividends remain on deposit until maturity. Fees may reduce earnings.

1 Must meet age requirements to participate.</savingNote>
<savingsMinBal>Minimum to open is $0.00</savingsMinBal>
<savingsTypeName>Checking</savingsTypeName>
</SavingType>
</AdvSaving>
<effectiveDate>Rates effective from 11/01/2018 through 11/30/2018</effectiveDate>
</Product>
还有课程:
namespace InitechServiceEntities
{
[XmlType(AnonymousType = true, Namespace = "http://schemas.datacontract.org/2004/07/mInitechService")]
[XmlRoot(Namespace = "http://schemas.datacontract.org/2004/07/mInitechService", IsNullable = false)]
public class Product
{
//...
[XmlArrayItem("SavingType", typeof(SavingType), IsNullable = false)]
public SavingType[] AdvSaving;
[XmlElement("effectiveDate")]
public string effectiveDate;
}
[XmlType("SavingType")]
public class SavingType
{
[XmlElement("savingsTypeName")]
public string savingsTypeName;
[XmlElement("savingsMinBal")]
public string savingsMinBal;
[XmlElement("savingNote")]
public string savingNote;
[XmlElement("Savings")]
//[XmlArray(ElementName = "Savings")]
//[XmlArrayItem(Type = typeof(Saving))]
public Saving[] Savings;
}
[XmlType("Saving")]
public class Saving
{
[XmlElement("name")]
public string name;
[XmlElement("dailyBalance")]
public decimal dailyBalance;
[XmlElement("divRate")]
public decimal divRate;
[XmlElement("apy")]
public decimal apy;
}
}
【问题讨论】:
标签: c# xml deserialization