SoapHttpClientProtocol.Invoke(String, Object[]) SoapHttpClientProtocol.Invoke(String, Object[]) SoapHttpClientProtocol.Invoke(String, Object[]) SoapHttpClientProtocol.Invoke(String, Object[]) Method

定義

SOAP を使用して XML Web サービス メソッドを同期的に呼び出します。Invokes an XML Web service method synchronously using SOAP.

protected:
 cli::array <System::Object ^> ^ Invoke(System::String ^ method_name, cli::array <System::Object ^> ^ parameters);
protected object[] Invoke (string method_name, object[] parameters);
member this.Invoke : string * obj[] -> obj[]
Protected Function Invoke (method_name As String, parameters As Object()) As Object()

パラメーター

methodName
String String String String

XML Web サービス メソッドの名前。The name of the XML Web service method.

parameters
Object[]

XML Web サービスに渡すパラメーターを格納しているオブジェクトの配列。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.

戻り値

Object[]

派生クラス メソッドの戻り値、および reference パラメーターまたは out パラメーターを格納しているオブジェクトの配列。An array of objects that contains the return value and any reference or out parameters of the derived class method.

例外

要求はサーバー コンピューターに到達しましたが、正常に処理されませんでした。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.

次のコード例は、 Math XML Web サービスの wsdl.exe によって生成されるプロキシクラスです。The following code example is a proxy class generated by Wsdl.exe for the Math XML Web service. プロキシクラスのInvoke Addメソッド内で、メソッドは XML Web サービスメソッドを呼び出します。 AddWithin the Add method of the proxy class, the Invoke method is calling 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^>^temp0 = {num1,num2};
         array<Object^>^results = this->Invoke( "Add", temp0 );
         return  *dynamic_cast<int^>(results[ 0 ]);
      }


      [System::Diagnostics::DebuggerStepThroughAttribute]
      System::IAsyncResult^ BeginAdd( int num1, int num2, System::AsyncCallback^ callback, Object^ asyncState )
      {
         array<Object^>^temp1 = {num1,num2};
         return this->BeginInvoke( "Add", temp1, 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.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 Web サービスです。The following code example is the Math XML Web service, from which the preceding proxy class was created.

<%@ 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;
          }
 }
<%@ 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

注釈

通常、XML Web サービス用にInvoke独自のプロキシクラスを作成する場合を除き、メソッドを直接呼び出さないでください。Typically, you do not call the Invoke method directly, unless you are building your own proxy class for an XML Web service.

XML web サービスの Web サービス記述言語ツール (Wsdl.exe) によって生成されるプロキシクラスは、XML Web サービスメソッドをプロキシクラスからの名前として公開します。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. プロキシクラスは、メソッドInvokeを呼び出して XML Web サービスメソッド呼び出しを呼び出します。The proxy class calls the Invoke method to invoke an XML Web service method call. たとえば、xml web サービスがという名前Addの xml web サービスメソッドを公開する場合、プロキシクラスにはという名前Addのメソッドも含まれます。For example, if an XML Web service exposes an XML Web service method named Add, the proxy class also contains a method named Add. プロキシクラスのAddメソッドのコード内では、 Invokeメソッドを使用して XML Web サービスメソッドに対して同期呼び出しが行われ、その結果がの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.

パラメーターは、などのメソッドSoapDocumentMethodAttributeに追加されたカスタム属性を検索するために使用されます。 methodNameThe methodName parameter is used to find the custom attributes that may have been added to the method, such as SoapDocumentMethodAttribute. SoapDocumentMethodAttributeSOAP プロトコルに必要な派生メソッドに関する追加情報を提供します。SoapDocumentMethodAttribute provides additional information on the derived method which is required for the SOAP protocol.

適用対象

こちらもご覧ください