HttpMethodAttribute クラス
HTTP-GET または HTTP-POST を使用する XML Web サービス クライアントにこの属性を適用し、XML Web サービスに送信されたパラメータをシリアル化する型、および XML Web サービス メソッドから応答を読み取る型を設定します。このクラスは継承できません。
この型のすべてのメンバの一覧については、HttpMethodAttribute メンバ を参照してください。
System.Object
System.Attribute
System.Web.Services.Protocols.HttpMethodAttribute
<AttributeUsage(AttributeTargets.Method)>
NotInheritable Public Class HttpMethodAttribute Inherits Attribute
[C#]
[AttributeUsage(AttributeTargets.Method)]
public sealed class HttpMethodAttribute : Attribute
[C++]
[AttributeUsage(AttributeTargets::Method)]
public __gc __sealed class HttpMethodAttribute : public Attribute
[JScript]
public
AttributeUsage(AttributeTargets.Method)
class HttpMethodAttribute extends Attribute
スレッドセーフ
この型の public static (Visual Basicでは Shared) のすべてのメンバは、マルチスレッド操作で安全に使用できます。インスタンスのメンバの場合は、スレッドセーフであるとは限りません。
解説
XML Web サービス クライアントが HTTP-GET を使用して XML Web サービス メソッドを呼び出す場合は、 ReturnFormatter を XmlReturnReader に設定し、 ParameterFormatter を UrlParameterWriter に設定する必要があります。HTTP-POST を使用して XML Web サービスを呼び出す XML Web サービス クライアントでは、 ReturnFormatter を XmlReturnReader に設定し、 ParameterFormatter を HtmlFormParameterWriter に設定する必要があります。
使用例
HTTP-POST を使用して XML Web サービス ユーティリティを呼び出すために、Wsdl.exe ユーティリティによって生成されるプロキシ クラスの例を次に示します。Wsdl.exe は、 ReturnFormatter および ParameterFormatter に対応する適切な型を自動的に指定し、またプロキシ クラスが HttpPostClientProtocol から継承することも指定します。
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
[C#]
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;
}
[C++]
[System::Xml::Serialization::XmlRootAttribute(Namespace=S"http://tempuri.org/", IsNullable=true)]
public __gc class UserName {
public:
String* Name;
String* Domain;
};
public __gc class MyUser : public System::Web::Services::Protocols::HttpPostClientProtocol {
public:
MyUser() {
this->Url = S"https://www.contoso.com/username.asmx";
}
[System::Web::Services::Protocols::HttpMethodAttribute(__typeof(System::Web::Services::Protocols::XmlReturnReader), __typeof(System::Web::Services::Protocols::HtmlFormParameterWriter))]
UserName* GetUserName() {
return (dynamic_cast<UserName*>(this->Invoke(S"GetUserName", (String::Concat( this->Url, S"/GetUserName" )), new Object*[0])));
}
System::IAsyncResult* BeginGetUserName(System::AsyncCallback* callback, Object* asyncState) {
return this->BeginInvoke(S"GetUserName", (String::Concat( this->Url, S"/GetUserName" )), new Object*[0], callback, asyncState);
}
UserName* EndGetUserName(System::IAsyncResult* asyncResult) {
return (dynamic_cast<UserName*>(this->EndInvoke(asyncResult)));
}
};
[JScript]
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
必要条件
名前空間: System.Web.Services.Protocols
プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ
アセンブリ: System.Web.Services (System.Web.Services.dll 内)
参照
HttpMethodAttribute メンバ | System.Web.Services.Protocols 名前空間 | SoapDocumentMethodAttribute | SoapRpcMethodAttribute