WebClientProtocol 类

定义

指定使用 ASP.NET 创建的所有 XML Web services 客户端代理的基类。

public ref class WebClientProtocol abstract : System::ComponentModel::Component
public abstract class WebClientProtocol : System.ComponentModel.Component
[System.Runtime.InteropServices.ComVisible(true)]
public abstract class WebClientProtocol : System.ComponentModel.Component
type WebClientProtocol = class
    inherit Component
[<System.Runtime.InteropServices.ComVisible(true)>]
type WebClientProtocol = class
    inherit Component
Public MustInherit Class WebClientProtocol
Inherits Component
继承
WebClientProtocol
派生
属性

示例

以下示例是一个 ASP.NET Web 窗体,它调用名为 的 MathXML Web 服务。 在 函数中 EnterBtn_Click ,Web 窗体在调用远程 XML Web 服务方法之前,在代理类上设置代理信息和客户端凭据。

重要

此示例具有一个接受用户输入的文本框,这是一个潜在的安全威胁。 默认情况下,ASP.NET 网页验证用户输入是否不包含脚本或 HTML 元素。 有关详细信息,请参阅脚本侵入概述

<%@ Page Language="C#" %>
<%@ Import Namespace="System.Net" %>
<html>
    <script language="C#" runat="server">
       void EnterBtn_Click(Object Src, EventArgs E) 
          {
             MyMath.Math math = new MyMath.Math();

             // Set the client-side credentials using the Credentials property.
             ICredentials credentials = new NetworkCredential("Joe","mydomain","password");
             math.Credentials = credentials;
             
             // Do not allow the server to redirect the request.
             math.AllowAutoRedirect = false;
             
             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 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="VB" %>
<%@ Import Namespace="System.Net" %>
<html>
    <script language="VB" runat="server">
    
        Sub EnterBtn_Click(src As Object, e As EventArgs)
            Dim math As New MyMath.Math()
            
            ' Set the client-side credentials using the Credentials property.
            Dim credentials As New NetworkCredential("Joe", "password", "mydomain")
            math.Credentials = credentials
            
            ' Do not allow the server to redirect the request.
            math.AllowAutoRedirect = False
            
            Dim iTotal As Integer = math.Add(Convert.ToInt32(Num1.Text), Convert.ToInt32(Num2.Text))
            Total.Text = "Total: " & iTotal.ToString()
        End Sub
 
    </script>
 
    <body>
       <form action="MathClient.aspx" runat=server>
           
          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>

注解

类的属性 WebClientProtocol 用于控制用于传输 XML Web 服务请求和响应的传输行为。 此类上的属性映射到 在 上 WebRequest找到的属性。 派生自 WebRequest的类实例(如 HttpWebRequest)用作使用 ASP.NET 创建的 XML Web 服务的传输机制。

若要与 XML Web 服务通信,必须为要调用的 XML Web 服务创建间接派生或直接从 WebClientProtocol 派生的代理类。 可以使用 Wsdl.exe 工具为给定 XML Web 服务的服务说明创建代理类,而不是手动创建代理类。 由于 WebClientProtocol 是客户端代理的基类,因此可以在代理类上找到其属性。 这些属性可用于控制基础传输的请求行为。 例如,使用 Credentials 属性调用经过身份验证的 XML Web 服务。 许多 WebClientProtocol 属性用于初始化 WebRequest 用于发出 Web 请求的对象。

构造函数

WebClientProtocol()

初始化 WebClientProtocol 类的新实例。

属性

CanRaiseEvents

获取一个指示组件是否可以引发事件的值。

(继承自 Component)
ConnectionGroupName

获取或设置请求的连接组的名称。

Container

获取包含 IContainerComponent

(继承自 Component)
Credentials

获取或设置 XML Web services 客户端身份验证的安全凭据。

DesignMode

获取一个值,用以指示 Component 当前是否处于设计模式。

(继承自 Component)
Events

获取附加到此 Component 的事件处理程序的列表。

(继承自 Component)
PreAuthenticate

获取或设置是否启用了预身份验证。

RequestEncoding

用于对 XML Web services 发出客户端请求的 Encoding

Site

获取或设置 ComponentISite

(继承自 Component)
Timeout

指示 XML Web services 客户端等待同步 XML Web services 请求完成的时间(以毫秒计)的回复。

Url

获取或设置客户端正在请求的 XML Web services 的基 URL。

UseDefaultCredentials

获取或设置一个值,该值指示是否将 Credentials 属性设置为 DefaultCredentials 属性的值。

方法

Abort()

取消对 XML Web services 方法的请求。

AddToCache(Type, Object)

向缓存添加客户端协议处理程序的实例。

CreateObjRef(Type)

创建一个对象,该对象包含生成用于与远程对象进行通信的代理所需的全部相关信息。

(继承自 MarshalByRefObject)
Dispose()

释放由 Component 使用的所有资源。

(继承自 Component)
Dispose(Boolean)

释放由 Component 占用的非托管资源,还可以另外再释放托管资源。

(继承自 Component)
Equals(Object)

确定指定对象是否等于当前对象。

(继承自 Object)
GetFromCache(Type)

获取缓存中的客户端协议处理程序的实例。

GetHashCode()

作为默认哈希函数。

(继承自 Object)
GetLifetimeService()
已过时.

检索控制此实例的生存期策略的当前生存期服务对象。

(继承自 MarshalByRefObject)
GetService(Type)

返回一个对象,该对象表示由 Component 或它的 Container 提供的服务。

(继承自 Component)
GetType()

获取当前实例的 Type

(继承自 Object)
GetWebRequest(Uri)

为指定的 uri 创建一个 WebRequest 实例。 这一受保护的方法由 XML Web services 客户端基础结构调用来获取新的 WebRequest 传输对象,以传输 XML Web services 请求。

GetWebResponse(WebRequest)

将同步请求中的响应返回给 XML Web services 方法。

GetWebResponse(WebRequest, IAsyncResult)

将异步请求中的响应返回给 XML Web services 方法。 这一受保护的方法由 XML Web services 客户端基础结构调用来获取来自异步 XML Web services 请求的响应。

InitializeLifetimeService()
已过时.

获取生存期服务对象来控制此实例的生存期策略。

(继承自 MarshalByRefObject)
MemberwiseClone()

创建当前 Object 的浅表副本。

(继承自 Object)
MemberwiseClone(Boolean)

创建当前 MarshalByRefObject 对象的浅表副本。

(继承自 MarshalByRefObject)
ToString()

返回包含 Component 的名称的 String(如果有)。 不应重写此方法。

(继承自 Component)

事件

Disposed

在通过调用 Dispose() 方法释放组件时发生。

(继承自 Component)

适用于

线程安全性

对于每个 XML Web 服务方法调用,此类上的属性将复制到 对象的新实例 WebRequest 中。 虽然可以从不同的线程同时在同一实例上 WebClientProtocol 调用 XML Web 服务方法,但不会执行任何同步,以确保将属性的一致快照传输到对象 WebRequest 。 因此,如果需要修改属性并从不同的线程进行并发方法调用,则应使用 XML Web 服务代理的不同实例或提供自己的同步。

另请参阅