错误是:
反序列化Releye.Solution.Nordnet.ExternalService.AggregatedCustomerInfoJson类型的对象时出错。结束元素'availableForTrading'来自命名空间''预期。从命名空间''找到元素'curr'。
我怀疑它与标签“availableForTrading”(以及更多属性的副本)有关,“内部属性”为“curr = SEK”。
我不知道如何正确处理这个问题。任何建议表示赞赏。
我的班级看起来像这样:
[DataContract]
public class AccountSummaryItem
{
public AccountSummaryItem()
{
}
[DataMember(Name = "userMapping")]
public List<UserMappingItem> usermappings { get; set; }
[DataMember(EmitDefaultValue = false)]
public string accno { get; set; }
[DataMember(EmitDefaultValue = false)]
public int? atyid { get; set; }
[DataMember(EmitDefaultValue = false)]
public string category { get; set; }
[DataMember(EmitDefaultValue = false)]
public string minor { get; set; }
[DataMember(EmitDefaultValue = false)]
public string deceased { get; set; }
[DataMember(Name = "riskEstimate")]
public RiskEstimate RiskEstimate { get; set; }
[DataMember(EmitDefaultValue = false)]
public string amlCustomerInfoUpdateNeeded { get; set; }
[DataMember(EmitDefaultValue = false, Name = "availableForTrading", IsRequired = false)]
public string availableForTrading { get; set; }
[DataMember(EmitDefaultValue = false, Name = "availableForWithdrawal", IsRequired = false)]
public string availableForWithdrawal { get; set; }
[DataMember(EmitDefaultValue = false)]
public bool blocked { get; set; }
[DataMember(EmitDefaultValue = false, Name = "ownCapital", IsRequired = false)]
public string ownCapital { get; set; }
[DataMember(EmitDefaultValue = false, Name = "pawnValue", IsRequired = false)]
public string pawnValue { get; set; }
[DataMember(EmitDefaultValue = false)]
public bool shareville { get; set; }
[DataMember(EmitDefaultValue = false)]
public string totalValue { get; set; }
[DataMember(EmitDefaultValue = false)]
public string atycode { get; set; }
[DataMember(EmitDefaultValue = false)]
public string chgid { get; set; }
[DataMember(EmitDefaultValue = false)]
public string chgname { get; set; }
[DataMember(EmitDefaultValue = false)]
public bool hasCreditAgreement { get; set; }
[DataMember(EmitDefaultValue = false)]
public bool hasTrustee { get; set; }
[DataMember(EmitDefaultValue = false)]
public string ofcid { get; set; }
[DataMember(EmitDefaultValue = false)]
public string ofcname { get; set; }
[DataMember(EmitDefaultValue = false)]
public string regdate { get; set; }
[DataMember(EmitDefaultValue = false)]
public string role { get; set; }
[DataMember(EmitDefaultValue = false)]
public string roleDescription { get; set; }
[DataMember(EmitDefaultValue = false)]
public string username { get; set; }
}
xml看起来像这样:
<accountSummary>
<amlCustomerInfoUpdateNeeded>false</amlCustomerInfoUpdateNeeded>
<availableForTrading curr="SEK">269061.14</availableForTrading>
<availableForWithdrawal curr="SEK">10921.14</availableForWithdrawal>
<blocked>false</blocked>
<deceased>false</deceased>
<minor>false</minor>
<ownCapital curr="SEK">1152082.20718864</ownCapital>
<pawnValue curr="SEK">0.0</pawnValue>
<totalValue curr="SEK">10921.14</totalValue>
<accno>11245381213</accno>
<atycode>Depåkonton</atycode>
<atyid>108</atyid>
<category>OWNER</category>
<chgid>131476</chgid>
<chgname>SE PRB</chgname>
<hasTrustee>false</hasTrustee>
<ofcid>122</ofcid>
<ofcname>PRB</ofcname>
<regdate>1998-08-18</regdate>
</accountSummary>
答案 0 :(得分:0)
我找到了一个可接受的解决方案。 通过以下方式添加表示此属性的类:
[DataContract]
public class AccountSummary_ownCapital
{
public AccountSummary_ownCapital()
{
}
[DataMember(EmitDefaultValue = false, Name = "$")]
public double ownCapital { get; set; }
[DataMember(EmitDefaultValue = false)]
public string curr { get; set; }
}
然后改变我的&#34; old&#34; class to(对于包含内部&#34; curr&#34;的特定属性):
[DataMember(EmitDefaultValue = false)]
public AccountSummary_ownCapital ownCapital { get; set; }
然后我得到这个漂亮的自定义对象,其中包含curr-attribute的值和&#34; ownCapital&#34;的值。