WebInvokeAttribute クラス


サービス操作が論理的には呼び出し操作であり、WCF REST プログラミング モデルで呼び出すことができることを示す属性を表します。Represents an attribute indicating that a service operation is logically an invoke operation and that it can be called by the WCF REST programming model.

public ref class WebInvokeAttribute sealed : Attribute, System::ServiceModel::Description::IOperationBehavior
public sealed class WebInvokeAttribute : Attribute, System.ServiceModel.Description.IOperationBehavior
type WebInvokeAttribute = class
    inherit Attribute
    interface IOperationBehavior
Public NotInheritable Class WebInvokeAttribute
Inherits Attribute
Implements IOperationBehavior

WebInvokeAttribute 属性を使用する方法を次のコード例に示します。The following example shows how to use the WebInvokeAttribute attribute.


Method プロパティは次のコードで指定されていないので、すべてのサービス操作は HTTP POST メソッドにマップされます。Because the Method property is not specified in the following code, all service operations are mapped to the HTTP POST method.

public interface ICalculator2
    long Add(long x, long y);

    [WebInvoke(UriTemplate = "Sub?x={x}&y={y}")]
    long Subtract(long x, long y);

    [WebInvoke(UriTemplate = "Mult?x={x}&y={y}", BodyStyle = WebMessageBodyStyle.Bare)]
    long Multiply(long x, long y);

    [WebInvoke(UriTemplate = "Div?x={x}&y={y}", BodyStyle = WebMessageBodyStyle.Bare, RequestFormat = WebMessageFormat.Xml, ResponseFormat=WebMessageFormat.Xml)]
    long Divide(long x, long y);

    [WebInvoke(Method = "POST", UriTemplate = "Mod?x={x}&y={y}")]
    long Mod(long x, long y);
<ServiceContract()> _
Public Interface ICalculator2
    <OperationContract()> _
    <WebInvoke()> _
    Function Add(ByVal x As Long, ByVal y As Long) As Long

    <OperationContract()> _
    <WebInvoke(UriTemplate:="Sub?x={x}&y={y}")> _
    Function Subtract(ByVal x As Long, ByVal y As Long) As Long

    <OperationContract()> _
    <WebInvoke(UriTemplate:="Mult?x={x}&y={y}", BodyStyle:=WebMessageBodyStyle.Bare)> _
    Function Multiply(ByVal x As Long, ByVal y As Long) As Long

    <OperationContract()> _
    <WebInvoke(UriTemplate:="Div?x={x}&y={y}", BodyStyle:=WebMessageBodyStyle.Bare, RequestFormat:=WebMessageFormat.Xml, ResponseFormat:=WebMessageFormat.Xml)> _
    Function Divide(ByVal x As Long, ByVal y As Long) As Long

    <OperationContract()> _
   <WebInvoke(Method:="POST", UriTemplate:="Mod?x={x}&y={y}")> _
   Function Modulo(ByVal x As Long, ByVal y As Long) As Long
End Interface


WebInvokeAttribute 属性は、OperationContractAttribute に加えてサービス操作に適用され、呼び出しを表す、基になるトランスポートの動詞 (HTTP POST、PUT、DELETE など) と同様に、その操作を UriTemplate と関連付けます。The WebInvokeAttribute attribute is applied to a service operation in addition to the OperationContractAttribute and associates the operation with a UriTemplate as well as an underlying transport verb that represents an invocation (for example, HTTP POST, PUT, or DELETE). 属性は、操作の説明にメタデータIOperationBehaviorを追加するパッシブな操作の動作です (メソッドは何も行いません)。 ** WebInvokeAttributeThe WebInvokeAttribute attribute is a passive operation behavior (the IOperationBehavior methods do nothing) that adds metadata to the operation description. このメタデータを操作の説明で検索する動作 (WebInvokeAttribute など) がサービスの動作コレクションに追加されていない場合は、WebHttpBehavior 属性をサービス操作に適用しても機能しません。Applying the WebInvokeAttribute attribute to a service operation has no effect unless a behavior that looks for this metadata in the operation description (such as WebHttpBehavior) is added to the service's behavior collection. WebInvokeAttribute は、サービス操作が応答する HTTP メソッドを定義します。The WebInvokeAttribute determines what HTTP method that a service operation responds to. 既定では、WebInvokeAttribute が適用されたすべてのメソッドは、POST 要求に応答します。By default, all methods that have the WebInvokeAttribute applied respond to POST requests. Method プロパティでは、異なる HTTP メソッドを指定できます。The Method property allows you to specify a different HTTP method. GET に応答するサービス操作が必要な場合は、代わりに WebGetAttribute を使用します。If you want a service operation to respond to GET, use the WebGetAttribute instead.



WebInvokeAttribute クラスの新しいインスタンスを初期化します。Initializes a new instance of the WebInvokeAttribute class.



サービス操作との間で送受信されるメッセージの本文のスタイルを取得または設定します。Gets or sets the body style of the messages that are sent to and from the service operation.


IsBodyStyleSetExplicitly プロパティを取得します。Gets the IsBodyStyleSetExplicitly property.


IsRequestFormatSetExplicitly プロパティを取得します。Gets the IsRequestFormatSetExplicitly property.


IsResponseFormatSetExplicitly プロパティを取得します。Gets the IsResponseFormatSetExplicitly property.


サービス操作が応答するプロトコル (HTTP など) のメソッドを取得または設定します。Gets or sets the protocol (for example HTTP) method the service operation responds to.


RequestFormat プロパティを取得または設定します。Gets or sets the RequestFormat property.


ResponseFormat プロパティを取得または設定します。Gets or sets the ResponseFormat property.


派生クラスで実装されると、この Attribute の一意の識別子を取得します。When implemented in a derived class, gets a unique identifier for this Attribute.

(継承元 Attribute)

サービス操作の URI (Uniform Resource Identifier) テンプレート。The Uniform Resource Identifier (URI) template for the service operation.



このインスタンスが、指定されたオブジェクトと等価であるかどうかを示す値を返します。Returns a value that indicates whether this instance is equal to a specified object.

(継承元 Attribute)

このインスタンスのハッシュ コードを返します。Returns the hash code for this instance.

(継承元 Attribute)

現在のインスタンスの Type を取得します。Gets the Type of the current instance.

(継承元 Object)

派生クラスでオーバーライドされるとき、このインスタンスの値が派生クラスの既定値であるかどうかを示します。When overridden in a derived class, indicates whether the value of this instance is the default value for the derived class.

(継承元 Attribute)

派生クラス内でオーバーライドされたときに、指定したオブジェクトとこのインスタンスが等しいかどうかを示す値を返します。When overridden in a derived class, returns a value that indicates whether this instance equals a specified object.

(継承元 Attribute)

現在の Object の簡易コピーを作成します。Creates a shallow copy of the current Object.

(継承元 Object)

現在のオブジェクトを表す文字列を返します。Returns a string that represents the current object.

(継承元 Object)


_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

一連の名前を対応する一連のディスパッチ識別子に割り当てます。Maps a set of names to a corresponding set of dispatch identifiers.

(継承元 Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

オブジェクトの型情報を取得します。この情報はインターフェイスの型情報の取得に使用できます。Retrieves the type information for an object, which can be used to get the type information for an interface.

(継承元 Attribute)

オブジェクトが提供する型情報インターフェイスの数 (0 または 1) を取得します。Retrieves the number of type information interfaces that an object provides (either 0 or 1).

(継承元 Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

オブジェクトによって公開されたプロパティおよびメソッドへのアクセスを提供します。Provides access to properties and methods exposed by an object.

(継承元 Attribute)
IOperationBehavior.AddBindingParameters(OperationDescription, BindingParameterCollection)

AddBindingParameters(OperationDescription, BindingParameterCollection) メソッドを実装します。Implements the AddBindingParameters(OperationDescription, BindingParameterCollection) method.

IOperationBehavior.ApplyClientBehavior(OperationDescription, ClientOperation)

ApplyClientBehavior(OperationDescription, ClientOperation) メソッドを実装します。Implements the ApplyClientBehavior(OperationDescription, ClientOperation) method.

IOperationBehavior.ApplyDispatchBehavior(OperationDescription, DispatchOperation)

ApplyDispatchBehavior(OperationDescription, DispatchOperation) メソッドを実装します。Implements the ApplyDispatchBehavior(OperationDescription, DispatchOperation) method.


Validate(OperationDescription) メソッドを実装します。Implements the Validate(OperationDescription) method.