SoapHttpClientProtocol-Klasse
Gibt den Klassenclient an, von dem Proxys bei Verwendung von SOAP abgeleitet werden.
Namespace: System.Web.Services.Protocols
Assembly: System.Web.Services (in system.web.services.dll)
Syntax
'Declaration
<ComVisibleAttribute(True)> _
Public Class SoapHttpClientProtocol
Inherits HttpWebClientProtocol
'Usage
Dim instance As SoapHttpClientProtocol
[ComVisibleAttribute(true)]
public class SoapHttpClientProtocol : HttpWebClientProtocol
[ComVisibleAttribute(true)]
public ref class SoapHttpClientProtocol : public HttpWebClientProtocol
/** @attribute ComVisibleAttribute(true) */
public class SoapHttpClientProtocol extends HttpWebClientProtocol
ComVisibleAttribute(true)
public class SoapHttpClientProtocol extends HttpWebClientProtocol
Hinweise
Beim Erstellen eines XML-Webdienstclients müssen Sie für diesen eine Proxyklasse erstellen, die direkt oder indirekt von WebClientProtocol abgeleitet ist. Wenn der XML-Webdienstclient den Aufruf über SOAP ausführt, muss die Proxyklasse von SoapHttpClientProtocol abgeleitet werden, das von HttpWebClientProtocol abgeleitet wird. HttpWebClientProtocol leitet sich wiederum von WebClientProtocol ab.
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. Anstatt die Proxyklasse manuell zu erstellen, können Sie mithilfe des WSDL (Web Services Description Language)-Tools (Wsdl.exe) eine Proxyklasse für die Dienstbeschreibung eines angegebenen XML-Webdiensts erstellen. Wenn eine Proxyklasse für das SOAP-Protokoll generiert wird, erfolgen synchrone Aufrufe an XML-Webdienstmethoden über die Invoke-Methode, während asynchrone Aufrufe über die BeginInvoke-Methode und die EndInvoke-Methode erfolgen.
Hinweise für Erben Wenn Sie diese Klasse überschreiben, können Sie die für einen bestimmten XML-Webdiensttyp spezifischen Methoden in die abgeleitete Klasse einfügen. Diese Methoden erfassen die Parameter auf und rufen die Basisklasse für die Kommunikation mit dem XML-Webdienst auf. Wenn die eingeführten Methoden asynchron sind, rufen Sie die BeginInvoke-Methode und die EndInvoke-Methode auf. Wenn die eingefügten Methoden synchron sind, rufen Sie die Invoke-Methode auf. Der überschriebene Konstruktor legt die Url-Eigenschaft i. d. R. auf den URL der XML-Webdienstmethode fest.
Beispiel
Im folgenden Codebeispiel wird eine von Wsdl.exe generierte Proxyklasse für den Math
-XML-Webdienst veranschaulicht. Die Proxyklasse wird aus dem SoapHttpClientProtocol abgeleitet, das wiederum von der abstrakten WebClientProtocol-Klasse abgeleitet wird.
Option Strict On
Option Explicit On
Imports System
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]:="https://www.contoso.com/")> _
Public Class MyMath
Inherits System.Web.Services.Protocols.SoapHttpClientProtocol
<System.Diagnostics.DebuggerStepThroughAttribute()> _
Public Sub New()
MyBase.New
Me.Url = "https://www.contoso.com/math.asmx"
End Sub
<System.Diagnostics.DebuggerStepThroughAttribute(), _
System.Web.Services.Protocols.SoapDocumentMethodAttribute("https://www.contoso.com/Add", RequestNamespace:="https://www.contoso.com/", ResponseNamespace:="https://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
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="https://www.contoso.com/")]
public class MyMath : System.Web.Services.Protocols.SoapHttpClientProtocol {
[System.Diagnostics.DebuggerStepThroughAttribute()]
public MyMath() {
this.Url = "https://www.contoso.com/math.asmx";
}
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.Web.Services.Protocols.SoapDocumentMethodAttribute("https://www.contoso.com/Add", RequestNamespace="https://www.contoso.com/", ResponseNamespace="https://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]));
}
}
}
#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="https://www.contoso.com/")]
public ref class MyMath: public System::Web::Services::Protocols::SoapHttpClientProtocol
{
public:
[System::Diagnostics::DebuggerStepThroughAttribute]
MyMath()
{
this->Url = "https://www.contoso.com/math.asmx";
}
[System::Diagnostics::DebuggerStepThroughAttribute]
[System::Web::Services::Protocols::SoapDocumentMethodAttribute("https://www.contoso.com/Add",
RequestNamespace="https://www.contoso.com/",ResponseNamespace="https://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 ]);
}
};
}
package MyMath;
import System.Diagnostics.*;
import System.Xml.Serialization.*;
import System.*;
import System.Web.Services.Protocols.*;
import System.Web.Services.*;
/** @attribute System.Web.Services.WebServiceBindingAttribute(
Name = "MyMathSoap", Namespace = "https://www.contoso.com/")
*/
public class MyMath extends System.Web.Services.Protocols.SoapHttpClientProtocol
{
/** @attribute System.Diagnostics.DebuggerStepThroughAttribute()
*/
public MyMath()
{
this.set_Url("https://www.contoso.com/math.asmx");
} //MyMath
/** @attribute System.Diagnostics.DebuggerStepThroughAttribute()
*/
/** @attribute System.Web.Services.Protocols.SoapDocumentMethodAttribute(
"https://www.contoso.com/Add", RequestNamespace =
"https://www.contoso.com/", ResponseNamespace =
"https://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[] { (Int32)num1, (Int32)num2 });
return (int)((Int32)results.get_Item(0));
} //Add
/** @attribute System.Diagnostics.DebuggerStepThroughAttribute()
*/
public System.IAsyncResult BeginAdd(int num1, int num2,
System.AsyncCallback callback, Object asyncState)
{
return this.BeginInvoke("Add",
new Object[] { (Int32)num1, (Int32)num2 }, callback, asyncState);
} //BeginAdd
/** @attribute System.Diagnostics.DebuggerStepThroughAttribute()
*/
public int EndAdd(System.IAsyncResult asyncResult)
{
Object results[] = this.EndInvoke(asyncResult);
return (int)((Int32)results.get_Item(0));
} //EndAdd
} //MyMath
Im folgenden Codebeispiel wird der Math
-XML-Webdienst veranschaulicht, aus dem die vorangegangene Proxyklasse generiert wurde.
<%@ WebService Language="VB" Class="MyMath"%>
Imports System.Web.Services
Imports System
<WebService(Namespace:="https://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
<%@ WebService Language="C#" Class="MyMath"%>
using System.Web.Services;
using System;
[WebService(Namespace="https://www.contoso.com/")]
public class MyMath {
[ WebMethod ]
public int Add(int num1, int num2) {
return num1+num2;
}
}
<%@ WebService Language="VJ#" Class="MyMath"%>
import System.Web.Services .* ;
import System .* ;
/** @attribute WebService(Namespace = "https://www.contoso.com/")
* */
public class MyMath
{
/** @attribute WebMethod()
* */
public int Add(int num1, int num2)
{
return num1 + num2 ;
}
}
Vererbungshierarchie
System.Object
System.MarshalByRefObject
System.ComponentModel.Component
System.Web.Services.Protocols.WebClientProtocol
System.Web.Services.Protocols.HttpWebClientProtocol
System.Web.Services.Protocols.SoapHttpClientProtocol
Threadsicherheit
Dieser Typ ist für Multithreadoperationen sicher.
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
SoapHttpClientProtocol-Member
System.Web.Services.Protocols-Namespace
HttpSimpleClientProtocol-Klasse