Export (0) Print
Expand All

SoapHttpClientProtocol.BeginInvoke Method

Starts an asynchronous invocation of an XML Web service method using SOAP.

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

'Declaration
Protected Function BeginInvoke ( _
	methodName As String, _
	parameters As Object(), _
	callback As AsyncCallback, _
	asyncState As Object _
) As IAsyncResult

Parameters

methodName
Type: System.String

The name of the XML Web service method in the derived class that is invoking the BeginInvoke method.

parameters
Type: System.Object()

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

callback
Type: System.AsyncCallback

The delegate to call when the asynchronous invoke is complete. If callback is Nothing, the delegate is not called.

asyncState
Type: System.Object

Extra information supplied by the caller.

Return Value

Type: System.IAsyncResult
An IAsyncResult that is passed to the EndInvoke method to obtain the return values from the remote method call.

ExceptionCondition
SoapException

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

InvalidOperationException

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

WebException

An error occurred while accessing the network.

Typically, you would not call the BeginInvoke method directly, unless you were building your own proxy class for an XML Web service.

A proxy class generated by the Web Services Description Language tool (Wsdl.exe) from a Service Description exposes the XML Web service methods as names derived from the proxy class to call the XML Web service methods synchronously. To call the XML Web service methods asynchronously, two additional methods are added to the proxy class for each XML Web service method, one with the Begin prefix added to the name of the XML Web service method and one with the End prefix added.

The proxy class calls the BeginInvoke method to start an asynchronous invocation call to the XML Web service method. For example, if an XML Web service exposes an XML Web service method named Add, the proxy class contains a method named BeginAdd, for starting an invocation to the XML Web service method. Within the code for the BeginAdd, a call is made to the BeginInvoke method and the results are placed into the expected return type for Add.

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

asyncState is passed into callback and is included in the IAsyncResult that is returned from the BeginInvoke method. The asyncState parameter can be used to pass information about the context of the asynchronous call, specified in the callback parameter, to the delegate that handles the result.

The following code example is a proxy class generated by the Web Services Description Language tool (Wsdl.exe) for the Math XML Web service. Within the BeginAdd method of the proxy class, the BeginInvoke method is starting an asynchronous invocation to 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

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

.NET Framework

Supported in: 4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

Was this page helpful?
(1500 characters remaining)
Thank you for your feedback
Show:
© 2014 Microsoft