SoapHttpClientProtocol.Invoke(String, Object[]) Method

Definition

Invokes an XML Web service method synchronously using SOAP.

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

Parameters

methodName
String

The name of the XML Web service method.

parameters
Object[]

An array of objects that contains the parameters to pass to the XML Web service. The order of the values in the array corresponds to the order of the parameters in the calling method of the derived class.

Returns

Object[]

An array of objects that contains the return value and any reference or out parameters of the derived class method.

Exceptions

The request reached the server computer, but was not processed successfully.

The request was not valid for the object's current state.

An error occurred while accessing the network.

Examples

The following code example is a proxy class generated by Wsdl.exe for the Math XML Web service. Within the Add method of the proxy class, the Invoke method is calling the Add XML Web service method.

C#

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]));
        }
    }
}

The following code example is the Math XML Web service, from which the preceding proxy class was created.

ASP.NET (C#)
<%@ 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;
          }
 }

Remarks

Typically, you do not call the Invoke method directly, unless you are building your own proxy class for an XML Web service.

A proxy class generated by the Web Services Description Language tool (Wsdl.exe) for an XML Web service exposes the XML Web service methods as names off of the proxy class. The proxy class calls the Invoke method to invoke an XML Web service method call. For example, if an XML Web service exposes an XML Web service method named Add, the proxy class also contains a method named Add. Within the code for the Add method in the proxy class, a synchronous call is made to the XML Web service method through the Invoke method and then the results are placed into the expected return type for Add.

The methodName parameter is used to find the custom attributes that may have been added to the method, such as SoapDocumentMethodAttribute. SoapDocumentMethodAttribute provides additional information on the derived method which is required for the SOAP protocol.

Applies to

Product Versions
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1

See also