【发布时间】:2021-09-24 20:11:16
【问题描述】:
大家好, 我已经能够在我的 web api 项目中将我的 xml 序列化为我的模型。但我面临的挑战是数组部分或列表部分没有被序列化,它的输出为空。 请在下面检查我的 xml 和模型,参数没有被映射。 谢谢
--模型--
[DataContract(Namespace="")]
[XmlRoot(ElementName = "ValidationRequest")]
public class ValidationRequest
{
[DataMember]
[XmlElement(ElementName = "SourceBankCode")]
public string SourceBankCode { get; set; }
[DataMember]
[XmlElement(ElementName = "SourceBankName")]
public string SourceBankName { get; set; }
[DataMember]
[XmlElement(ElementName = "InstitutionCode")]
public int InstitutionCode { get; set; }
[DataMember]
[XmlElement(ElementName = "ProductID")]
public int ProductID { get; set; }
[DataMember]
[XmlElement(ElementName = "ProductName")]
public string ProductName { get; set; }
[DataMember]
[XmlElement(ElementName = "Param")]
public List<Param> Param { get; set; }
}
[XmlRoot(ElementName = "Param")]
public class Param
{
[DataMember]
[XmlElement(ElementName = "Key")]
public string Key { get; set; }
[DataMember]
[XmlElement(ElementName = "Value")]
public string Value { get; set; }
}
-- 正在传递的 XML--
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ValidationRequest>
<SourceBankCode>221</SourceBankCode>
<SourceBankName>Stanbic IBTC Bank Plc.</SourceBankName>
<InstitutionCode>999221</InstitutionCode>
<ProductID>990</ProductID>
<ProductName>NIBSS ebillsPay</ProductName>
<Param>
<Key>Username</Key>
<Value>3191469</Value>
</Param>
<Param>
<Key>Amount</Key>
<Value>500</Value>
</Param>
<Param>
<Key>Description</Key>
<Value>Text Books</Value>
</Param>
<Param>
<Key>DepositorName</Key>
<Value>Ayomide</Value>
</Param>
</ValidationRequest>
【问题讨论】:
-
您是否尝试序列化或反序列化此 XML? 正在传递的 XML 似乎暗示您收到了 XML。 -- 最简单的反序列化:
var validation = new XmlSerializer(typeof(ValidationRequest)).Deserialize(XmlReader.Create(xml));没有问题。 -
您好 Jimi,对不起我的错误主题,我会编辑它。我想反序列化。我会试试你的方法。谢谢
-
嗨 Jimi,我试过你的代码,它带来了一个错误:路径中的非法字符
-
嗨@Jimi,我已经纠正了错误,但数组路径仍然为零计数。请帮助检查您自己的结果。谢谢
标签: c# xml asp.net-web-api serialization