使用XmlSerializer并设置根类名
本文关键字:设置 XmlSerializer 使用 | 更新日期: 2023-09-27 18:27:09
尝试使用XmlSerializer来很好地反序列化我从Web服务中得到的东西。
这是我的班级申报单:
[Serializable]
public class CarrierLookupResponse
{
[XmlElement(ElementName = "ResponseDO")]
public ResponseDo ResponseDo { get; set; }
}
以下是XML的外观:
<?xml version="1.0" encoding="utf-8" ?>
<CarrierService.CarrierLookup>
<ResponseDO>
<status>APPROVED</status>
<action>OK</action>
<code>SFW00389</code>
<displayMsg></displayMsg>
<techMsg></techMsg>
</ResponseDO>
以下是我用来反序列化的代码:
var serializer = new XmlSerializer(typeof(CarrierLookupResponse));
var carrierLookupResponse = serializer.Deserialize(new StringReader(response.Key)) as CarrierLookupResponse;
问题很简单。服务返回"CarrierService.CarrierLookup",我需要强制它反序列化为"CarrierLookupResponse"
我不能将XmlElement属性放在类本身上,所以我不知道如何正确映射这个名称。
您尝试过使用XmlRoot属性吗?
[Serializable]
[XmlRoot("CarrierService.CarrierLookup")]
public class CarrierLookupResponse
{
...