代码之家  ›  专栏  ›  技术社区  ›  Toybuilder

WCF Web服务响应XML文件

  •  3
  • Toybuilder  · 技术社区  · 5 年前

      <GetCertMailReceiptNumbersResponse xmlns="http://tempuri.org/">
          <GetCertMailReceiptNumbersResult xmlns:a="http://schemas.datacontract.org/2004/07/WcfSmartConnect" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
            ***<a:AccountNumber i:nil="true" />
            <a:Address1 i:nil="true" />
            <a:Address2 i:nil="true" />
            <a:City i:nil="true" />
            <a:Name1 i:nil="true" />
            <a:Name2 i:nil="true" />
            <a:OrderNumber>1325661</a:OrderNumber>
            <a:Password i:nil="true" />***
            <a:ReturnCode>200</a:ReturnCode>
            <a:ReturnMessage />
            ***<a:SoftwareID i:nil="true" />
            <a:State i:nil="true" />
            <a:TrackingStatus i:nil="true" />
            <a:USPSReceipt i:nil="true" />
            <a:UserID i:nil="true" />
            <a:Zip i:nil="true" />***
            <a:lsCMRN>
              <a:CertMailReceiptNumbers>
                <a:AccountNumber>1</a:AccountNumber>
                <a:Address1>201 Test Ln</a:Address1>
                <a:Address2>TSTCity TST  123456</a:Address2>
                <a:City>TSTCity</a:City>
                <a:Name1>pinu</a:Name1>
                <a:Name2 i:nil="true" />
                <a:OrderNumber />
                ***<a:Password />
                <a:ReturnCode>0</a:ReturnCode>
                <a:ReturnMessage i:nil="true" />
                <a:SoftwareID />***
                <a:State> TST </a:State>
                <a:TrackingStatus>MAILED</a:TrackingStatus>
                <a:USPSReceipt>71926389001019</a:USPSReceipt>
                ***<a:UserID />***
                <a:Zip>123456</a:Zip>
                <a:lsCMRN />
                <a:order>1325661</a:order>
              </a:CertMailReceiptNumbers>
              <a:CertMailReceiptNumbers>
                <a:AccountNumber>10</a:AccountNumber>
                <a:Address1>121 Mant Drive</a:Address1>
                <a:Address2>TestCity  Test  123456</a:Address2>
                <a:City> TestCity </a:City>
                <a:Name1>Kris </a:Name1>
                <a:Name2 i:nil="true" />
                <a:OrderNumber />
                ***<a:Password />
                <a:ReturnCode>0</a:ReturnCode>
                <a:ReturnMessage i:nil="true" />
                <a:SoftwareID />***
                <a:State>Test</a:State>
                <a:TrackingStatus>MAILED</a:TrackingStatus>
                <a:USPSReceipt>71926389000026</a:USPSReceipt>
                ***<a:UserID />***
                <a:Zip>123456</</a:Zip>
                <a:lsCMRN />
                <a:order>1325661</a:order>
              </a:CertMailReceiptNumbers>
              <a:CertMailReceiptNumbers>
                <a:AccountNumber>2</a:AccountNumber>
                <a:Address1>121 Technot</a:Address1>
                <a:Address2>Test  Tst  123456</a:Address2>
                <a:City>Test</a:City>
                <a:Name1>Alice</a:Name1>
                <a:Name2 i:nil="true" />
                <a:OrderNumber />
                ***<a:Password />
                <a:ReturnCode>0</a:ReturnCode>
                <a:ReturnMessage i:nil="true" />
                <a:SoftwareID />***
                <a:State>Tst</a:State>
                <a:TrackingStatus>MAILED</a:TrackingStatus>
                <a:USPSReceipt>7192638900000033</a:USPSReceipt>
                ***<a:UserID />***
                <a:Zip>123456</</a:Zip>
                <a:lsCMRN />
                <a:order>1325661</a:order>
              </a:CertMailReceiptNumbers>
              <a:CertMailReceiptNumbers>
                <a:AccountNumber>3</a:AccountNumber>
                <a:Address1>194 Green st</a:Address1>
                <a:Address2>Matt  MA  123456</a:Address2>
                <a:City>Matt</a:City>
                <a:Name1>Jewel Bondurant</a:Name1>
                <a:Name2 i:nil="true" />
                <a:OrderNumber />
                ***<a:Password />
                <a:ReturnCode>0</a:ReturnCode>
                <a:ReturnMessage i:nil="true" />
                <a:SoftwareID />***
                <a:State>MA</a:State>
                <a:TrackingStatus>MAILED</a:TrackingStatus>
                <a:USPSReceipt>71926389001000000040</a:USPSReceipt>
                ***<a:UserID />***
                <a:Zip>123456</</a:Zip>
                <a:lsCMRN />
                <a:order>1325661</a:order>
              </a:CertMailReceiptNumbers>
              <a:CertMailReceiptNumbers>
                <a:AccountNumber>4</a:AccountNumber>
                <a:Address1>123  Nasas</a:Address1>
                <a:Address2>Mtar  Tst  123456</a:Address2>
                <a:City>Mtar</a:City>
                <a:Name1>Terry </a:Name1>
                <a:Name2 i:nil="true" />
                ***<a:OrderNumber />
                <a:Password />
                <a:ReturnCode>0</a:ReturnCode>
                <a:ReturnMessage i:nil="true" />
                <a:SoftwareID />***
                <a:State>Tst</a:State>
                <a:TrackingStatus>MAILED</a:TrackingStatus>
               a:USPSReceipt>7192630000057</a:USPSReceipt>
                ***<a:UserID />***
                <a:Zip>123456</</a:Zip>
                <a:lsCMRN />
                <a:order>1325661</a:order>
              </a:CertMailReceiptNumbers>
            </a:lsCMRN>
            <a:order>0</a:order>
          </GetCertMailReceiptNumbersResult>
        </GetCertMailReceiptNumbersResponse>
    
    1 回复  |  直到 14 年前
        1
  •  1
  •   marc_s    14 年前

    向我们展示您的类,这些类将作为WCF服务的响应发送回来!没有他们,充其量只是一场猜谜游戏。。。。

    基本上,对于.NET3.5SP1中的WCF,您不需要这样做 不得不 用特殊的属性来特别地标记你的类和它们的属性。否则,DataContract序列化程序将像XML序列化程序一样工作:所有公共属性都将被序列化。

    • 把钥匙放好 [DataContract] 属性,以及
    • 把钥匙放好 [DataMember] 属性的值

    任何没有用[DataMember]属性修饰的内容都将被跳过,并且不会包含在WCF响应消息中。

    所以在你的情况下,你必须

    [DataContract]
    class GetCertMailReceiptNumbersResult
    {
        // no DataMember attribute --> will not be included!
        int AccountNumber {get;set;}
        string Address1 {get;set;}
       ......
        string Password {get;set;}
    
        // here, include DataMember attributes --> will be included
        [DataMember]
        int ReturnCode {get;set;}
        [DataMember]
        string ReturnMessage {get;set;}
    
        // and so forth
     }
    

    [数据成员] 属性其他什么都可以 包含在序列化邮件中。