0

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

4

1 回答 1

0

您是否尝试过使用 XmlRoot 属性?

    [Serializable]
    [XmlRoot("CarrierService.CarrierLookup")] 
    public class CarrierLookupResponse
    {
    ...
于 2013-08-09T19:23:23.543 回答