SoapHttpClientProtocol.Invoke(String, Object[]) メソッド

定義

SOAP を使用して XML Web サービス メソッドを同期的に呼び出します。

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

パラメーター

methodName
String

XML Web サービス メソッドの名前。

parameters
Object[]

XML Web サービスに渡すパラメーターを格納しているオブジェクトの配列。 配列内の値の順序は、呼び出し元の派生クラス メソッドに渡されたパラメーターの順序に対応しています。

戻り値

Object[]

派生クラス メソッドの戻り値、および reference パラメーターまたは out パラメーターを格納しているオブジェクトの配列。

例外

要求はサーバー コンピューターに到達しましたが、正常に処理されませんでした。

リクエストが、オブジェクトの現在の状態に対して有効でなかった。

ネットワークへのアクセス中にエラーが発生しました。

次のコード例は、XML Web サービスの Math Wsdl.exe によって生成されるプロキシ クラスです。 プロキシ クラスの Add メソッド内で Invoke 、 メソッドは XML Web サービス メソッドを Add 呼び出しています。


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

次のコード例は、前の Math プロキシ クラスが作成された XML Web サービスです。

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

注釈

通常、XML Web サービス用に独自のプロキシ クラスを Invoke 構築する場合を除き、メソッドを直接呼び出さないでください。

XML Web サービスの Web サービス記述言語ツール (Wsdl.exe) によって生成されたプロキシ クラスは、XML Web サービス メソッドをプロキシ クラスの名前として公開します。 プロキシ クラスは、 メソッドを Invoke 呼び出して XML Web サービス メソッド呼び出しを呼び出します。 たとえば、XML Web サービスが という名前 Addの XML Web サービス メソッドを公開する場合、プロキシ クラスには という名前 Addのメソッドも含まれます。 プロキシ クラスの メソッドの Add コード内で、 メソッドを使用して XML Web サービス メソッドに対して同期呼び出しが Invoke 行われ、結果は の予期される戻り値の型 Addに配置されます。

パラメーターは methodName 、 メソッドに追加された可能性があるカスタム属性 (など SoapDocumentMethodAttribute) を検索するために使用されます。 SoapDocumentMethodAttribute は、SOAP プロトコルに必要な派生メソッドに関する追加情報を提供します。

適用対象

製品 バージョン
.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

こちらもご覧ください