尝试使用XmlSerializer来很好地反序列化我从webservice获得的东西。
这是我的班级声明:
[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属性放在类本身上,所以我不知道如何正确映射这个名字。
答案 0 :(得分:0)
您是否尝试过使用XmlRoot属性?
[Serializable]
[XmlRoot("CarrierService.CarrierLookup")]
public class CarrierLookupResponse
{
...