WebInvokeAttribute Class
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.
Assembly: System.ServiceModel.Web (in System.ServiceModel.Web.dll)
The WebInvokeAttribute type exposes the following members.
| Name | Description | |
|---|---|---|
![]() | BodyStyle | Gets and 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. |
![]() | Method | Gets and sets the protocol (for example HTTP) method the service operation responds to. |
![]() | RequestFormat | Gets and sets the RequestFormat property. |
![]() | ResponseFormat | Gets and sets the ResponseFormat property. |
![]() | TypeId | When implemented in a derived class, gets a unique identifier for this Attribute. (Inherited from Attribute.) |
![]() | UriTemplate | The Uniform Resource Identifier (URI) template for the service operation. |
| Name | Description | |
|---|---|---|
![]() | Equals | Infrastructure. Returns a value that indicates whether this instance is equal to a specified object. (Inherited from Attribute.) |
![]() | GetHashCode | Returns the hash code for this instance. (Inherited from Attribute.) |
![]() | GetType | Gets the Type of the current instance. (Inherited from Object.) |
![]() | IsDefaultAttribute | When overridden in a derived class, indicates whether the value of this instance is the default value for the derived class. (Inherited from Attribute.) |
![]() | Match | When overridden in a derived class, returns a value that indicates whether this instance equals a specified object. (Inherited from Attribute.) |
![]() | ToString | Returns a string that represents the current object. (Inherited from Object.) |
| Name | Description | |
|---|---|---|
![]() ![]() | _Attribute.GetIDsOfNames | Maps a set of names to a corresponding set of dispatch identifiers. (Inherited from Attribute.) |
![]() ![]() | _Attribute.GetTypeInfo | Retrieves the type information for an object, which can be used to get the type information for an interface. (Inherited from Attribute.) |
![]() ![]() | _Attribute.GetTypeInfoCount | Retrieves the number of type information interfaces that an object provides (either 0 or 1). (Inherited from Attribute.) |
![]() ![]() | _Attribute.Invoke | Provides access to properties and methods exposed by an object. (Inherited from Attribute.) |
![]() ![]() | IOperationBehavior.AddBindingParameters | Implements the AddBindingParameters(OperationDescription, BindingParameterCollection) method. |
![]() ![]() | IOperationBehavior.ApplyClientBehavior | Implements the ApplyClientBehavior(OperationDescription, ClientOperation) method. |
![]() ![]() | IOperationBehavior.ApplyDispatchBehavior | Implements the ApplyDispatchBehavior(OperationDescription, DispatchOperation) method. |
![]() ![]() | IOperationBehavior.Validate | Implements the Validate(OperationDescription) method. |
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). The WebInvokeAttribute attribute is a passive operation behavior (the IOperationBehavior methods do nothing) that adds metadata to the operation description. 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. The WebInvokeAttribute determines what HTTP method that a service operation responds to. By default, all methods that have the WebInvokeAttribute applied respond to POST requests. The Method property allows you to specify a different HTTP method. If you want a service operation to respond to GET, use the WebGetAttribute instead.
The following example shows how to use the WebInvokeAttribute attribute.
Note |
|---|
Because the Method property is not specified in the following code, all service operations are mapped to the HTTP POST method. |
[ServiceContract] public interface ICalculator2 { [OperationContract] [WebInvoke] long Add(long x, long y); [OperationContract] [WebInvoke(UriTemplate = "Sub?x={x}&y={y}")] long Subtract(long x, long y); [OperationContract] [WebInvoke(UriTemplate = "Mult?x={x}&y={y}", BodyStyle = WebMessageBodyStyle.Bare)] long Multiply(long x, long y); [OperationContract] [WebInvoke(UriTemplate = "Div?x={x}&y={y}", BodyStyle = WebMessageBodyStyle.Bare, RequestFormat = WebMessageFormat.Xml, ResponseFormat=WebMessageFormat.Xml)] long Divide(long x, long y); [OperationContract] [WebInvoke(Method = "POST", UriTemplate = "Mod?x={x}&y={y}")] long Mod(long x, long y); }
Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)
The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.
