SoapHttpClientProtocol.Discover メソッドとは? わかりやすく解説

Weblio 辞書 > コンピュータ > .NET Framework クラス ライブラリ リファレンス > SoapHttpClientProtocol.Discover メソッドの意味・解説 

SoapHttpClientProtocol.Discover メソッド

Url にある探索ドキュメント記述されている XML Web サービス動的にバインドます。

名前空間: System.Web.Services.Protocols
アセンブリ: System.Web.Services (system.web.services.dll 内)
構文構文

例外例外
解説解説

XML Web サービス クライアントは、Discover メソッド使ってプロキシ クラス参照されている XML Web サービス除き1 つXML Web サービス動的にバインドできます通常 Url プロパティは、XML Web サービスベース アドレス参照します。ただし Discover メソッド呼び出す前にUrl プロパティ探索ドキュメントURL設定しますDiscover メソッドは、プロキシ クラス定義したバインディング探索ドキュメント一致項目があるか検索し、その一致項目に動的にバインドしようとします一致した場合その後メソッド呼び出し探索ドキュメント記述されている XML Web サービス転送されます。

プロキシ クラスWeb サービス記述言語ツール (Wsdl.exe) で作成されている場合、そのプロキシ クラスは、WebServiceBindingAttribute を使用して呼び出す XML Web サービス メソッドによって実装されるバインディング定義しますXML Web サービス複数バインディング実装される場合、Wsdl.exe はバインディングごとにプロキシ クラス作成します。各プロキシ クラスには、バインディングの名前とその名前空間定義する WebServiceBindingAttribute適用されます。Url プロパティ設定した探索ドキュメントには、同じバインディング名と名前空間実装する XML Web サービスへの参照格納されている必要がありますそれ以外場合は、例外スローさます。

使用例使用例

Wsdl.exe ユーティリティによって、Math XML Web サービス用に生成されるプロキシ クラスコード例次に示しますWebServiceBindingAttribute は、バインディング名を MathSoap、その名前空間http://tempuri.org/設定する Math プロキシ クラス適用されます。

Namespace MyMath
    
    <System.Web.Services.WebServiceBindingAttribute(Name:="MathSoap",
 [Namespace]:="http://tempuri.org/")>  _
    Public Class Math
        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://tempuri.org/Add",
 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
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="MathSoap", Namespace="http://tempuri.org/")]
    public class Math : System.Web.Services.Protocols.SoapHttpClientProtocol
 {
        
        [System.Diagnostics.DebuggerStepThroughAttribute()]
        public Math() {
            this.Url = "http://www.contoso.com/math.asmx";
        }
        
        [System.Diagnostics.DebuggerStepThroughAttribute()]
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/Add",
 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]));
        }
    }
}
#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="MathSoap",Namespace="http://tempuri.org/")]
   public ref class Math: public
 System::Web::Services::Protocols::SoapHttpClientProtocol
   {
   public:

      [System::Diagnostics::DebuggerStepThroughAttribute]
      Math()
      {
         this->Url = "http://www.contoso.com/math.asmx";
      }


      [System::Diagnostics::DebuggerStepThroughAttribute]
      [System::Web::Services::Protocols::SoapDocumentMethodAttribute("http://tempuri.org/Add"
,
      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 ]);
      }

   };

}

前述プロキシ クラス使用する Web サービス クライアントコード例次に示しますWeb フォームEnterBtn_Click イベントの中で、XML Web サービス クライアントDiscover メソッド呼び出しユーザー指定した URL への動的なバインディング試みます

<%@ Page Language="VB" %>
<html>
    <script language="VB" runat="server">
    Sub EnterBtn_Click(Src As Object,
 E As EventArgs)
        Dim math As New
 Math()
        Dim result As Integer
 

        ' If the user types in a URL, attempt to dynamically bind to
 it.
        If DiscoURL.Text <> String.Empty
 Then
           math.Url = DiscoURL.Text

           Try
         math.Discover()
           Catch except As Exception
          DiscoURL.Text = "Could not bind to MathSoap bindng at
 given URL."
           End Try       

        End If 


        ' Call to Add XML Web service method.
        result = math.Add(Convert.ToInt32(Num1.Text),Convert.ToInt32(Num2.Text))
        
        Total.Text = "Total: " & result.ToString()
    End Sub 'EnterBtn_Click
 
  </script>
 
    <body>
       <form action="MathClient.aspx" runat=server>
          
          Enter the URL of a disdovery document describing the
 MathSoap binding.
          <p> 
          <asp:textbox id="DiscoURL" runat=server
 Columns=80/>
          <p><p>
          Enter the two numbers you want to add and
 then press the Total button.
          <p>
          Number 1: <asp:textbox id="Num1" runat=server/>
  +
          Number 2: <asp:textbox id="Num2" runat=server/>
 =
          <asp:button text="Total" Onclick="EnterBtn_Click"
 runat=server/>
          <p>
          <asp:label id="Total"  runat=server/>
          
       </form>
    </body>
 </html>
<%@ Page Language="C#" %>
<html>
    <script language="C#" runat="server">
       void EnterBtn_Click(Object Src, EventArgs E) 
          {
             MyMath.Math math = new MyMath.Math();
             // If the user types in a URL, attempt to dynamically bind
 to it.
             if (DiscoURL.Text != String.Empty)
                { 
                  math.Url = DiscoURL.Text;
                  try
                      { math.Discover();}
                  catch (Exception)
                      {
                        DiscoURL.Text = "Could not bind to MathSoap bindng at
 given URL.  ";
                      }
                }
 
         // Call the Add XML Web service method. 
         int total = math.Add(Convert.ToInt32(Num1.Text),Convert.ToInt32(Num2.Text));
             
             Total.Text = "Total: " + total.ToString();
         }
 
    </script>
 
    <body>
       <form action="MathClient.aspx" runat=server>
          
          Enter the URL of a disdovery document describing the MathSoap binding.
          <p> 
          <asp:textbox id="DiscoURL" runat=server Columns=80/>
          <p><p>
          Enter the two numbers you want to add and then press the Total button.
          <p>
          Number 1: <asp:textbox id="Num1" runat=server/>  +
          Number 2: <asp:textbox id="Num2" runat=server/> =
          <asp:button text="Total" Onclick="EnterBtn_Click"
 runat=server/>
          <p>
          <asp:label id="Total"  runat=server/>
          
       </form>
    </body>
 </html>
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
SoapHttpClientProtocol クラス
SoapHttpClientProtocol メンバ
System.Web.Services.Protocols 名前空間
WebServiceBindingAttribute クラス
その他の技術情報
XML Web サービス探索


このページでは「.NET Framework クラス ライブラリ リファレンス」からSoapHttpClientProtocol.Discover メソッドを検索した結果を表示しています。
Weblioに収録されているすべての辞書からSoapHttpClientProtocol.Discover メソッドを検索する場合は、下記のリンクをクリックしてください。
 全ての辞書からSoapHttpClientProtocol.Discover メソッド を検索

英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

SoapHttpClientProtocol.Discover メソッドのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



SoapHttpClientProtocol.Discover メソッドのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
日本マイクロソフト株式会社日本マイクロソフト株式会社
© 2025 Microsoft.All rights reserved.

©2025 GRAS Group, Inc.RSS