尝试使用 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 属性放在类本身上,所以我不知道如何正确映射这个名称。