SoapHttpClientProtocol.Invoke(String, Object[]) Methode

Definition

Ruft eine XML-Webdienstmethode unter Verwendung von SOAP synchron auf.

protected object[] Invoke(string methodName, object[] parameters);

Parameter

methodName
String

Der Name der XML-Webdienstmethode.

parameters
Object[]

Ein Array von Objekten mit den Parametern, die an den XML-Webdienst übergeben werden sollen. Die Reihenfolge der Werte im Array entspricht der Reihenfolge der Parameter in der Aufrufmethode der abgeleiteten Klasse.

Gibt zurück

Object[]

Ein Array von Objekten mit dem Rückgabewert und allen reference-Parametern bzw. out-Parametern der abgeleiteten Klassenmethode.

Ausnahmen

Die Anforderung hat den Servercomputer erreicht, wurde jedoch nicht erfolgreich verarbeitet.

Die Anforderung war nicht gültig für den aktuellen Zustand des Objekts.

Fehler beim Zugriff auf das Netzwerk.

Beispiele

Das folgende Codebeispiel ist eine Proxyklasse, die von Wsdl.exe für den Math XML-Webdienst generiert wird. Innerhalb der Add -Methode der Proxyklasse ruft die Invoke -Methode die Add XML-Webdienstmethode auf.


namespace MyMath {
    using System.Diagnostics;
    using System.Xml.Serialization;
    using System;
    using System.Web.Services.Protocols;
    using System.Web.Services;

    [System.Web.Services.WebServiceBindingAttribute(Name="MyMathSoap", Namespace="http://www.contoso.com/")]
    public class MyMath : System.Web.Services.Protocols.SoapHttpClientProtocol {

        [System.Diagnostics.DebuggerStepThroughAttribute()]
        public MyMath() {
            this.Url = "http://www.contoso.com/math.asmx";
        }

        [System.Diagnostics.DebuggerStepThroughAttribute()]
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://www.contoso.com/Add", RequestNamespace="http://www.contoso.com/", ResponseNamespace="http://www.contoso.com/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public int Add(int num1, int num2) {
            object[] results = this.Invoke("Add", new object[] {num1,
                        num2});
            return ((int)(results[0]));
        }

        [System.Diagnostics.DebuggerStepThroughAttribute()]
        public System.IAsyncResult BeginAdd(int num1, int num2, System.AsyncCallback callback, object asyncState) {
            return this.BeginInvoke("Add", new object[] {num1,
                        num2}, callback, asyncState);
        }

        [System.Diagnostics.DebuggerStepThroughAttribute()]
        public int EndAdd(System.IAsyncResult asyncResult) {
            object[] results = this.EndInvoke(asyncResult);
            return ((int)(results[0]));
        }
    }
}

Das folgende Codebeispiel ist der Math XML-Webdienst, aus dem die vorherige Proxyklasse erstellt wurde.

<%@ WebService Language="C#" Class="MyMath"%>
 using System.Web.Services;
 using System;
 
 [WebService(Namespace="http://www.contoso.com/")] 
 public class MyMath {
      [ WebMethod ]
      public int Add(int num1, int num2) {
          return num1+num2;
          }
 }

Hinweise

In der Regel rufen Sie die Invoke Methode nicht direkt auf, es sei denn, Sie erstellen eine eigene Proxyklasse für einen XML-Webdienst.

Eine Proxyklasse, die vom Web Services Description Language-Tool (Wsdl.exe) für einen XML-Webdienst generiert wird, macht die XML-Webdienstmethoden als Namen aus der Proxyklasse verfügbar. Die Proxyklasse ruft die Invoke -Methode auf, um einen AUFRUF einer XML-Webdienstmethode aufzurufen. Wenn beispielsweise ein XML-Webdienst eine XML-Webdienstmethode mit dem Namen Addverfügbar macht, enthält die Proxyklasse auch eine Methode mit dem Namen Add. Innerhalb des Codes für die Add -Methode in der Proxyklasse wird ein synchroner Aufruf der XML-Webdienstmethode über die Invoke -Methode ausgeführt, und dann werden die Ergebnisse in den erwarteten Rückgabetyp für Addplatziert.

Der methodName -Parameter wird verwendet, um die benutzerdefinierten Attribute zu suchen, die der -Methode möglicherweise hinzugefügt wurden, z. B SoapDocumentMethodAttribute. . SoapDocumentMethodAttribute stellt zusätzliche Informationen zur abgeleiteten Methode bereit, die für das SOAP-Protokoll erforderlich ist.

Gilt für:

Weitere Informationen