Export (0) Print
Expand All

SoapHttpClientProtocol.Invoke Method

Invokes an XML Web service method synchronously using SOAP.

Namespace: System.Web.Services.Protocols
Assembly: System.Web.Services (in system.web.services.dll)

'Declaration
Protected Function Invoke ( _
	methodName As String, _
	parameters As Object() _
) As Object()
'Usage
Dim methodName As String
Dim parameters As Object()
Dim returnValue As Object()

returnValue = Me.Invoke(methodName, parameters)
protected Object[] Invoke (
	String methodName, 
	Object[] parameters
)
protected function Invoke (
	methodName : String, 
	parameters : Object[]
) : Object[]
Not applicable.

Parameters

methodName

The name of the XML Web service method.

parameters

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.

Return Value

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

Exception typeCondition

SoapException

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

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.

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.

Option Strict On
Option Explicit On

Imports System
Imports System.Diagnostics
Imports System.Web.Services
Imports System.Web.Services.Protocols
Imports System.Xml.Serialization

Namespace MyMath
    
    <System.Web.Services.WebServiceBindingAttribute(Name:="MyMathSoap", [Namespace]:="http://www.contoso.com/")>  _
    Public Class MyMath
        Inherits System.Web.Services.Protocols.SoapHttpClientProtocol
        
        <System.Diagnostics.DebuggerStepThroughAttribute()>  _
        Public Sub New()
            MyBase.New
            Me.Url = "http://www.contoso.com/math.asmx"
        End Sub
        
        <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 Function Add(ByVal num1 As Integer, ByVal num2 As Integer) As Integer
            Dim results() As Object = Me.Invoke("Add", New Object() {num1, num2})
            Return CType(results(0),Integer)
        End Function
        
        <System.Diagnostics.DebuggerStepThroughAttribute()>  _
        Public Function BeginAdd(ByVal num1 As Integer, ByVal num2 As Integer, ByVal callback As System.AsyncCallback, ByVal asyncState As Object) As System.IAsyncResult
            Return Me.BeginInvoke("Add", New Object() {num1, num2}, callback, asyncState)
        End Function
        
        <System.Diagnostics.DebuggerStepThroughAttribute()>  _
        Public Function EndAdd(ByVal asyncResult As System.IAsyncResult) As Integer
            Dim results() As Object = Me.EndInvoke(asyncResult)
            Return CType(results(0),Integer)
        End Function
    End Class
End Namespace


package MyMath; 

import System.Diagnostics.*;
import System.Xml.Serialization.*;
import System.*;
import System.Web.Services.Protocols.*;
import System.Web.Services.*;

/** @attribute System.Web.Services.WebServiceBindingAttribute(
    Name = "MyMathSoap", Namespace = "http://www.contoso.com/")
 */

public class MyMath extends System.Web.Services.Protocols.SoapHttpClientProtocol
{
    /** @attribute System.Diagnostics.DebuggerStepThroughAttribute()
     */

    public MyMath()
    {
        this.set_Url("http://www.contoso.com/math.asmx");
    } //MyMath

    /** @attribute System.Diagnostics.DebuggerStepThroughAttribute()
     */
    /** @attribute 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[] { 
            (Int32)num1, (Int32)num2 });
        return (int)((Int32)results.get_Item(0));
    } //Add

    /** @attribute System.Diagnostics.DebuggerStepThroughAttribute()
     */

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

    /* @attribute System.Diagnostics.DebuggerStepThroughAttribute()
     */

    public int EndAdd(System.IAsyncResult asyncResult)
    {
        Object results[] = this.EndInvoke(asyncResult);
        return (int)((Int32)results.get_Item(0));
    } //EndAdd
} //MyMath

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

<%@ WebService Language="VB" Class="MyMath"%>
Imports System.Web.Services
Imports System

<WebService(Namespace:="http://www.contoso.com/")> _
Public Class MyMath
    <WebMethod()> _
    Public Function Add(num1 As Integer, num2 As Integer) As Integer
        Return num1 + num2
    End Function 'Add
End Class 'Math

<%@ WebService Language="VJ#" Class="MyMath"%>
import System.Web.Services .* ;
import System .* ;


/** @attribute WebService(Namespace = "http://www.contoso.com/")
* */
public class MyMath
{
   /** @attribute WebMethod()
   * */
   public int Add(int num1, int num2) 
   {
      return num1 + num2 ;
   }
} 

Windows 98, Windows Server 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

The Microsoft .NET Framework 3.0 is supported on Windows Vista, Microsoft Windows XP SP2, and Windows Server 2003 SP1.

.NET Framework

Supported in: 3.0, 2.0, 1.1, 1.0

.NET Compact Framework

Supported in: 2.0, 1.0
Was this page helpful?
(1500 characters remaining)
Thank you for your feedback

Community Additions

Show:
© 2014 Microsoft