SoapHttpClientProtocol.BeginInvoke(String, Object[], AsyncCallback, Object) SoapHttpClientProtocol.BeginInvoke(String, Object[], AsyncCallback, Object) SoapHttpClientProtocol.BeginInvoke(String, Object[], AsyncCallback, Object) SoapHttpClientProtocol.BeginInvoke(String, Object[], AsyncCallback, Object) Method

정의

SOAP를 사용하여 XML Web services의 비동기 호출을 시작합니다.Starts an asynchronous invocation of an XML Web service method using SOAP.

protected:
 IAsyncResult ^ BeginInvoke(System::String ^ methodName, cli::array <System::Object ^> ^ parameters, AsyncCallback ^ callback, System::Object ^ asyncState);
protected IAsyncResult BeginInvoke (string methodName, object[] parameters, AsyncCallback callback, object asyncState);
member this.BeginInvoke : string * obj[] * AsyncCallback * obj -> IAsyncResult
Protected Function BeginInvoke (methodName As String, parameters As Object(), callback As AsyncCallback, asyncState As Object) As IAsyncResult

매개 변수

methodName
String String String String

BeginInvoke(String, Object[], AsyncCallback, Object) 메서드를 호출하고 있는 파생 클래스의 XML Web services 메서드 이름입니다.The name of the XML Web service method in the derived class that is invoking the BeginInvoke(String, Object[], AsyncCallback, Object) method.

parameters
Object[]

XML 웹 서비스에 전달할 매개 변수가 들어 있는 개체의 배열입니다.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
AsyncCallback AsyncCallback AsyncCallback AsyncCallback

비동기 호출이 완료될 때 호출할 대리자입니다.The delegate to call when the asynchronous invoke is complete. callbacknull이면 대리자가 호출되지 않습니다.If callback is null, the delegate is not called.

asyncState
Object Object Object Object

호출자가 제공한 추가 정보입니다.Extra information supplied by the caller.

반환

원격 메서드 호출에서 반환 값을 가져오기 위해 IAsyncResult 메서드에 전달된 EndInvoke(IAsyncResult)입니다.An IAsyncResult that is passed to the EndInvoke(IAsyncResult) method to obtain the return values from the remote method call.

예외

서버 컴퓨터에 요청이 도달했지만 성공적으로 처리되지 않은 경우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.

예제

다음 코드 예제는 웹 서비스 기술 언어 도구 (Wsdl.exe)에서 생성 한 프록시 클래스는 Math XML 웹 서비스입니다.The following code example is a proxy class generated by the Web Services Description Language tool (Wsdl.exe) for the Math XML Web service. 내 합니다 BeginAdd 프록시 클래스의 메서드는 BeginInvoke 메서드를 비동기식으로 호출을 시작 하는 중는 Add XML 웹 서비스 메서드.Within the BeginAdd method of the proxy class, the BeginInvoke method is starting an asynchronous invocation to the Add XML Web service method.

#using <System.Web.Services.dll>
#using <System.Xml.dll>
#using <System.dll>

using namespace System::Diagnostics;
using namespace System::Xml::Serialization;
using namespace System;
using namespace System::Web::Services::Protocols;
using namespace System::Web::Services;

namespace MyMath
{

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

      [System::Diagnostics::DebuggerStepThroughAttribute]
      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)]
      int Add( int num1, int num2 )
      {
         array<Object^>^temp1 = {num1,num2};
         array<Object^>^results = this->Invoke( "Add", temp1 );
         return  *dynamic_cast<int^>(results[ 0 ]);
      }


      [System::Diagnostics::DebuggerStepThroughAttribute]
      System::IAsyncResult^ BeginAdd( int num1, int num2, System::AsyncCallback^ callback, Object^ asyncState )
      {
         array<Object^>^temp2 = {num1,num2};
         return this->BeginInvoke( "Add", temp2, callback, asyncState );
      }


      [System::Diagnostics::DebuggerStepThroughAttribute]
      int EndAdd( System::IAsyncResult^ asyncResult )
      {
         array<Object^>^results = this->EndInvoke( asyncResult );
         return  *dynamic_cast<int^>(results[ 0 ]);
      }

   };

}


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

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

다음 코드 예제는 Math 위의 프록시 클래스 생성 된 XML 웹 서비스입니다.The following code example is the Math XML Web service, from which the preceding proxy class was created.

설명

일반적으로 사용자가 호출할 없습니다를 BeginInvoke 메서드를 직접 XML 웹 서비스에 대 한 고유한 프록시 클래스를 작성 된 경우가 아니면 합니다.Typically, you would not call the BeginInvoke method directly, unless you were building your own proxy class for an XML Web service.

서비스 설명에서 웹 서비스 기술 언어 도구 (Wsdl.exe)에서 생성 한 프록시 클래스는 XML 웹 서비스 메서드를 동기적으로 호출 하는 프록시 클래스에서 파생 되는 이름으로 XML 웹 서비스 메서드를 노출 합니다.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. XML 웹 서비스 메서드를 비동기적으로 호출 하려면 두 개의 추가 메서드 하나는 각 XML 웹 서비스 메서드에 대 한 프록시 클래스에 추가 됩니다는 Begin 개 및 XML 웹 서비스 메서드 이름에 추가 하는 접두사는 End 접두사를 추가 합니다.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.

호출 하 여 프록시 클래스는 BeginInvoke XML 웹 서비스 메서드에 대 한 비동기 호출 호출을 시작 하는 방법입니다.The proxy class calls the BeginInvoke method to start an asynchronous invocation call to the XML Web service method. 예를 들어, XML 웹 서비스 라는 XML 웹 서비스 메서드를 노출 하는 경우 Add, 명명 된 메서드를 포함 하는 프록시 클래스 BeginAdd, XML 웹 호출을 시작 하기 위한 메서드를 서비스 합니다.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. 코드 내에서 BeginAdd를 호출 합니다 BeginInvoke 메서드 결과 대 한 반환 형식으로 변환 됩니다 Add.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.

합니다 methodName 와 같은 메서드를 추가 된 사용자 지정 특성을 찾는 데 사용 됩니다 SoapDocumentMethodAttribute합니다.The methodName is used to find the custom attributes which may have been added to the method, such as SoapDocumentMethodAttribute. SoapDocumentMethodAttribute SOAP 프로토콜에 필요한 파생 된 메서드에 대 한 추가 정보를 제공 합니다.SoapDocumentMethodAttribute provides additional information about the derived method that is required for the SOAP protocol.

asyncState 에 전달 됩니다 callback 에 포함 되어 합니다 IAsyncResult 에서 반환 되는 BeginInvoke 메서드.asyncState is passed into callback and is included in the IAsyncResult that is returned from the BeginInvoke method. 합니다 asyncState 매개 변수를 사용 하 여 비동기 호출에 지정 된 컨텍스트에 대 한 정보를 전달할 수 있습니다는 callback 매개 변수, 결과 처리 하는 대리자입니다.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.

적용 대상

추가 정보