Freigeben über


HttpMethodAttribute-Klasse

Durch das Anwenden dieses Attributs auf einen XML-Webdienstclient, der HTTP-GET bzw. HTTP-POST verwendet, werden die Typen festgelegt, die die an eine XML-Webdienstmethode gesendeten Parameter serialisieren und die Antwort der XML-Webdienstmethode lesen. Diese Klasse kann nicht geerbt werden.

Namespace: System.Web.Services.Protocols
Assembly: System.Web.Services (in system.web.services.dll)

Syntax

'Declaration
<AttributeUsageAttribute(AttributeTargets.Method)> _
Public NotInheritable Class HttpMethodAttribute
    Inherits Attribute
'Usage
Dim instance As HttpMethodAttribute
[AttributeUsageAttribute(AttributeTargets.Method)] 
public sealed class HttpMethodAttribute : Attribute
[AttributeUsageAttribute(AttributeTargets::Method)] 
public ref class HttpMethodAttribute sealed : public Attribute
/** @attribute AttributeUsageAttribute(AttributeTargets.Method) */ 
public final class HttpMethodAttribute extends Attribute
AttributeUsageAttribute(AttributeTargets.Method) 
public final class HttpMethodAttribute extends Attribute

Hinweise

Wenn ein XML-Webdienstclient eine XML-Webdienstmethode unter Verwendung von HTTP-GET aufruft, muss ReturnFormatter auf XmlReturnReader und ParameterFormatter auf UrlParameterWriter festgelegt werden. XML-Webdienstclients, die einen XML-Webdienst unter Verwendung von HTTP-POST aufrufen, müssen ReturnFormatter auf XmlReturnReader und ParameterFormatter auf HtmlFormParameterWriter festlegen.

Beispiel

Das folgende Beispiel stellt eine Proxyklasse dar, die vom Dienstprogramm Wsdl.exe zum Aufrufen eines XML-Webdienstprogramms mit HTTP-POST generiert wird. Das Dienstprogramm Wsdl.exe stellt automatisch die richtigen Typen für ReturnFormatter und ParameterFormatter bereit und gibt an, dass die Proxyklasse von HttpPostClientProtocol erbt.

Public Class MyUser
    Inherits System.Web.Services.Protocols.HttpPostClientProtocol
    
    
    Public Sub New()
        Me.Url = "https://www.contoso.com/username.asmx"
    End Sub 'New
    
    <HttpMethodAttribute(GetType(XmlReturnReader), GetType(HtmlFormParameterWriter))> _
    Public Function GetUserName() As UserName
        Return CType(Me.Invoke("GetUserName", Me.Url + "/GetUserName", New Object(0) {}), UserName)
    End Function 'GetUserName
    
    
    Public Function BeginGetUserName(callback As System.AsyncCallback, asyncState As Object) As System.IAsyncResult
        Return Me.BeginInvoke("GetUserName", Me.Url + "/GetUserName", New Object(0) {}, callback, asyncState)
    End Function 'BeginGetUserName
    
    
    Public Function EndGetUserName(asyncResult As System.IAsyncResult) As UserName
        Return CType(Me.EndInvoke(asyncResult), UserName)
    End Function 'EndGetUserName
End Class 'MyUser

<XmlRootAttribute(Namespace := "http://tempuri.org/", IsNullable := True)> _
Public Class UserName
    Public Name As String
    Public Domain As String

End Class 'UserName
public class MyUser : System.Web.Services.Protocols.HttpPostClientProtocol {
    
    public MyUser() {
        this.Url = "https://www.contoso.com/username.asmx";
    }
    
    [System.Web.Services.Protocols.HttpMethodAttribute(typeof(System.Web.Services.Protocols.XmlReturnReader), typeof(System.Web.Services.Protocols.HtmlFormParameterWriter))]
    public UserName GetUserName() {
        return ((UserName)(this.Invoke("GetUserName", (this.Url + "/GetUserName"), new object[0])));
    }
    
    public System.IAsyncResult BeginGetUserName(System.AsyncCallback callback, object asyncState) {
        return this.BeginInvoke("GetUserName", (this.Url + "/GetUserName"), new object[0], callback, asyncState);
    }
    
    public UserName EndGetUserName(System.IAsyncResult asyncResult) {
        return ((UserName)(this.EndInvoke(asyncResult)));
    }
}

[System.Xml.Serialization.XmlRootAttribute(Namespace="http://tempuri.org/", IsNullable=true)]
public class UserName {
    
    public string Name;
    
    public string Domain;
}
   
[System::Xml::Serialization::XmlRootAttribute(Namespace="http://tempuri.org/",IsNullable=true)]
public ref class UserName
{
public:
   String^ Name;
   String^ Domain;
};

public ref class MyUser: public System::Web::Services::Protocols::HttpPostClientProtocol
{
public:
   MyUser()
   {
      this->Url = "https://www.contoso.com/username.asmx";
   }

   [System::Web::Services::Protocols::HttpMethodAttribute(System::Web::Services::Protocols::XmlReturnReader::typeid,System::Web::Services::Protocols::HtmlFormParameterWriter::typeid)]
   UserName^ GetUserName()
   {
      return (dynamic_cast<UserName^>(this->Invoke( "GetUserName", (String::Concat( this->Url, "/GetUserName" )), gcnew array<Object^>(0) )));
   }

   System::IAsyncResult^ BeginGetUserName( System::AsyncCallback^ callback, Object^ asyncState )
   {
      return this->BeginInvoke( "GetUserName", (String::Concat( this->Url, "/GetUserName" )), gcnew array<Object^>(0), callback, asyncState );
   }

   UserName^ EndGetUserName( System::IAsyncResult^ asyncResult )
   {
      return (dynamic_cast<UserName^>(this->EndInvoke( asyncResult )));
   }
};
public class MyUser extends System.Web.Services.Protocols.HttpPostClientProtocol
{
    public MyUser()
    {
        this.set_Url("https://www.contoso.com/username.asmx");
    } //MyUser

    /** @attribute System.Web.Services.Protocols.HttpMethodAttribute
        (System.Web.Services.Protocols.XmlReturnReader .class,
        System.Web.Services.Protocols.HtmlFormParameterWriter .class)
     */
    public UserName GetUserName()
    {
        return ((UserName)(this.Invoke("GetUserName", this.get_Url()
            + "/GetUserName", new Object[0])));
    } //GetUserName

    public System.IAsyncResult BeginGetUserName(System.AsyncCallback callback,
        Object asyncState)
    {
        return this.BeginInvoke("GetUserName", this.get_Url()
            + "/GetUserName", new Object[0], callback, asyncState);
    } //BeginGetUserName

    public UserName EndGetUserName(System.IAsyncResult asyncResult)
    {
        return ((UserName)(this.EndInvoke(asyncResult)));
    } //EndGetUserName
} //MyUser

/** @attribute System.Xml.Serialization.XmlRootAttribute
    (Namespace = "http://tempuri.org/", IsNullable = true)
 */
public class UserName
{
    public String name;
    public String domain;
} //UserName
class MyUser extends System.Web.Services.Protocols.HttpPostClientProtocol{

    function MyUser(){
        this.Url = "https://www.contoso.com/username.asmx"
    } //New

    public HttpMethodAttribute(XmlReturnReader, HtmlFormParameterWriter)
    function GetUserName() : UserName{
        return UserName(this.Invoke("GetUserName", this.Url + "/GetUserName", new Object[0]))
    } //GetUserName

    function BeginGetUserName(callback : System.AsyncCallback, asyncState : Object) : System.IAsyncResult{
        return this.BeginInvoke("GetUserName", this.Url + "/GetUserName", new Object[0], callback, asyncState)
    } //BeginGetUserName

    function EndGetUserName(asyncResult : System.IAsyncResult) : UserName{
        return UserName(this.EndInvoke(asyncResult))
    } //EndGetUserName
} //MyUser

public XmlRootAttribute(Namespace = "http://tempuri.org/", IsNullable = true)
class UserName{
    var Name : String
    var Domain : String

} //UserName

Vererbungshierarchie

System.Object
   System.Attribute
    System.Web.Services.Protocols.HttpMethodAttribute

Threadsicherheit

Alle öffentlichen statischen (Shared in Visual Basic) Member dieses Typs sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.

Plattformen

Windows 98, Windows 2000 SP4, Windows Millennium Edition, 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

Siehe auch

Referenz

HttpMethodAttribute-Member
System.Web.Services.Protocols-Namespace
SoapDocumentMethodAttribute
SoapRpcMethodAttribute