C〓WebServiceパラメータ属性

1763 ワード

前回のWebServiceの名前空間衝突の例によれば、MyMethodインターフェースのXML要求記述とXML応答記述は以下の通りである。
POST /Service1.asmx HTTP/1.1
Host: localhost
Content-Type: text/xml; charset=utf-8
Content-Length: length
SOAPAction: "http://tempuri.org/MyMethod"



  
    
      
        string
        
          int
        
      
    
  
HTTP/1.1 200 OK
Content-Type: text/xml; charset=utf-8
Content-Length: length



  
    
      
        string
        
          string
        
      
    
  
このインターフェースでは、XMLのデフォルトのラベルはMyMethodとMyMethodResonseであり、現在はデフォルトの値を変更し、ラベル名をカスタマイズする必要があります。ここでは、return注釈を追加することにより実現できます。
MyMethodインターフェースはこのように修正されました。
[WebMethod]
        [return: XmlElement(ElementName = "output")]
        public MyClass2.MyClass2 MyMethod([XmlElement(ElementName="input")]MyClass1.MyClass1 myClass1)
        {
            return new MyClass2.MyClass2(); ;
        }
ラベル名に応じてinputとoutputに変更します。