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.

Namespace:   System.ServiceModel.Web
Assembly:  System.ServiceModel.Web (in System.ServiceModel.Web.dll)

SystemObject
   SystemAttribute
    System.ServiceModel.WebWebInvokeAttribute

[AttributeUsageAttribute(AttributeTargets.Method)]
public sealed class WebInvokeAttribute : Attribute, IOperationBehavior
[AttributeUsageAttribute(AttributeTargets::Method)]
public ref class WebInvokeAttribute sealed : Attribute, IOperationBehavior
[<Sealed>]
[<AttributeUsageAttribute(AttributeTargets.Method)>]
type WebInvokeAttribute = 
    class
        inherit Attribute
        interface IOperationBehavior
    end
<AttributeUsageAttribute(AttributeTargets.Method)>
Public NotInheritable Class WebInvokeAttribute
	Inherits Attribute
	Implements IOperationBehavior
NameDescription
System_CAPS_pubmethod WebInvokeAttribute

Initializes a new instance of the WebGetAttribute class.

NameDescription
System_CAPS_pubproperty

Gets and sets the body style of the messages that are sent to and from the service operation.

System_CAPS_pubproperty

Gets the property.

System_CAPS_pubproperty

Gets the property.

System_CAPS_pubproperty

Gets the property.

System_CAPS_pubproperty

Gets and sets the protocol (for example HTTP) method the service operation responds to.

System_CAPS_pubproperty

Gets and sets the property.

System_CAPS_pubproperty

Gets and sets the property.

System_CAPS_pubproperty

When implemented in a derived class, gets a unique identifier for this Attribute.(Inherited from Attribute.)

System_CAPS_pubproperty

The Uniform Resource Identifier (URI) template for the service operation.

NameDescription
System_CAPS_pubmethod Equals

This API supports the product infrastructure and is not intended to be used directly from your code. Returns a value that indicates whether this instance is equal to a specified object.(Inherited from Attribute.)

System_CAPS_pubmethod GetHashCode

Returns the hash code for this instance.(Inherited from Attribute.)

System_CAPS_pubmethod GetType

Gets the Type of the current instance.(Inherited from Object.)

System_CAPS_pubmethod 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.)

System_CAPS_pubmethod Match

When overridden in a derived class, returns a value that indicates whether this instance equals a specified object.(Inherited from Attribute.)

System_CAPS_pubmethod ToString

Returns a string that represents the current object.(Inherited from Object.)

NameDescription
System_CAPS_pubinterface System_CAPS_privmethod _AttributeGetIDsOfNames

Maps a set of names to a corresponding set of dispatch identifiers.(Inherited from Attribute.)

System_CAPS_pubinterface System_CAPS_privmethod _AttributeGetTypeInfo

Retrieves the type information for an object, which can be used to get the type information for an interface.(Inherited from Attribute.)

System_CAPS_pubinterface System_CAPS_privmethod _AttributeGetTypeInfoCount

Retrieves the number of type information interfaces that an object provides (either 0 or 1).(Inherited from Attribute.)

System_CAPS_pubinterface System_CAPS_privmethod _AttributeInvoke

Provides access to properties and methods exposed by an object.(Inherited from Attribute.)

System_CAPS_pubinterface System_CAPS_privmethod IOperationBehaviorAddBindingParameters

Implements the AddBindingParameters method.

System_CAPS_pubinterface System_CAPS_privmethod IOperationBehaviorApplyClientBehavior

Implements the ApplyClientBehavior method.

System_CAPS_pubinterface System_CAPS_privmethod IOperationBehaviorApplyDispatchBehavior

Implements the ApplyDispatchBehavior method.

System_CAPS_pubinterface System_CAPS_privmethod IOperationBehaviorValidate

Implements the Validate 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 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.

System_CAPS_noteNote

Because the 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);
}
<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
.NET Framework
Available since 3.5
Silverlight
Available since 4.0

Any public static ( Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Return to top