WebClientProtocol-Klasse
Gibt die Basisklasse für alle XML-Webdienst-Clientproxys an, die mit ASP.NET erstellt wurden.
Namespace: System.Web.Services.Protocols
Assembly: System.Web.Services (in system.web.services.dll)
Syntax
'Declaration
<ComVisibleAttribute(True)> _
Public MustInherit Class WebClientProtocol
Inherits Component
'Usage
Dim instance As WebClientProtocol
[ComVisibleAttribute(true)]
public abstract class WebClientProtocol : Component
[ComVisibleAttribute(true)]
public ref class WebClientProtocol abstract : public Component
/** @attribute ComVisibleAttribute(true) */
public abstract class WebClientProtocol extends Component
ComVisibleAttribute(true)
public abstract class WebClientProtocol extends Component
Hinweise
Die Eigenschaften der WebClientProtocol-Klasse werden verwendet, um das Verhalten des Transports zu steuern, der zum Übertragen der XML-Webdienstanforderung und -antwort verwendet wird. Die Eigenschaften stimmen mit den Eigenschaften in WebRequest überein. Instanzen von Klassen, die von WebRequest abgeleitet sind (beispielsweise HttpWebRequest), werden als Transportmechanismus für XML-Webdienste verwendet, die mit ASP.NET erstellt wurden.
Sie können mit einem XML-Webdienst kommunizieren, indem Sie eine Proxyklasse erstellen, die direkt oder indirekt vom WebClientProtocol für den aufzurufenden XML-Webdienst abgeleitet ist. Sie müssen die Proxyklasse nicht manuell erstellen, sondern können das Tool Wsdl.exe verwenden, um eine Proxyklasse für die Dienstbeschreibung eines bestimmten XML-Webdiensts zu erstellen. Da WebClientProtocol die Basisklasse für den Clientproxy ist, finden Sie ihre Eigenschaften in den Proxyklassen. Diese Eigenschaften sind besonders für die Steuerung des Anforderungsverhaltens des zugrunde liegenden Transports hilfreich. So können Sie z. B. die Credentials-Eigenschaft verwenden, um authentifizierte XML-Webdienste aufzurufen. Viele der WebClientProtocol-Eigenschaften werden zum Initialisieren des WebRequest-Objekts verwendet, mit dem die Webanforderung erstellt wird.
Beispiel
Das folgende Beispiel ist eine ASP.NET-Web Form, die einen XML-Webdienst mit dem Namen Math
aufruft. Innerhalb der EnterBtn_Click
-Funktion legt die Web Form Proxy-Informationen und Client-Anmeldeinformationen für die Proxy-Klasse fest, bevor die Remote-XML-Webdienstmethode aufgerufen wird.
<%@ 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>
<%@ 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="JSCRIPT" src="source.js" %>
<%@ Import Namespace="System.Net" %>
<html>
<script language="JSCRIPT" runat="server">
function EnterBtn_Click(src : Object, e : EventArgs){
var math : MyMath.Math = new MyMath.Math()
// Set the client-side credentials using the Credentials property.
var credentials : NetworkCredential = new NetworkCredential("Joe", "password", "mydomain")
math.Credentials = credentials
// Do not allow the server to redirect the request.
math.AllowAutoRedirect = false
var iTotal : int = math.Add(Convert.ToInt32(Num1.Text), Convert.ToInt32(Num2.Text))
Total.Text = "Total: " + iTotal.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>
Vererbungshierarchie
System.Object
System.MarshalByRefObject
System.ComponentModel.Component
System.Web.Services.Protocols.WebClientProtocol
System.Web.Services.Protocols.HttpWebClientProtocol
Threadsicherheit
Die Eigenschaften dieser Klasse werden für jeden XML-Webdienstmethoden-Aufruf in eine neue Instanz eines WebRequest-Objekts kopiert. Es ist zwar möglich, XML-Webdienstmethoden für ein und dieselbe WebClientProtocol-Instanz gleichzeitig über unterschiedliche Threads aufzurufen, es erfolgt jedoch keine Synchronisierung, um sicherzustellen, dass ein einheitlicher Snapshot der Eigenschaften an das WebRequest-Objekt übertragen wird. Wenn Sie die Eigenschaften ändern und gleichzeitig mehrere Methodenaufrufe über verschiedene Threads durchführen müssen, sollten Sie daher eine andere Instanz des XML-Webdienstproxys verwenden oder selbst dafür sorgen, dass eine Synchronisierung erfolgt.
Plattformen
Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile für Pocket PC, Windows Mobile für Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.
Versionsinformationen
.NET Framework
Unterstützt in: 2.0, 1.1, 1.0
.NET Compact Framework
Unterstützt in: 2.0, 1.0
Siehe auch
Referenz
WebClientProtocol-Member
System.Web.Services.Protocols-Namespace
SoapHttpClientProtocol-Klasse
HttpWebRequest