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 に答える