WebInvokeAttribute 类

定义

表示属性,该属性指示服务操作在逻辑上是调用操作,而且可由 WCF REST 编程模型调用。

public ref class WebInvokeAttribute sealed : Attribute, System::ServiceModel::Description::IOperationBehavior
[System.AttributeUsage(System.AttributeTargets.Method)]
public sealed class WebInvokeAttribute : Attribute, System.ServiceModel.Description.IOperationBehavior
[<System.AttributeUsage(System.AttributeTargets.Method)>]
type WebInvokeAttribute = class
    inherit Attribute
    interface IOperationBehavior
Public NotInheritable Class WebInvokeAttribute
Inherits Attribute
Implements IOperationBehavior
继承
WebInvokeAttribute
属性
实现

示例

下面的示例演示如何使用 WebInvokeAttribute 特性。

备注

在下面的代码中,未指定 Method 属性,因此所有服务操作都会映射到 HTTP POST 方法。

[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

注解

除了 WebInvokeAttribute 之外,OperationContractAttribute 属性也会应用到服务操作,并将该操作与 UriTemplate 以及表示调用的基础传输谓词(如 HTTP POST、PUT 或 DELETE)相关联。 该 WebInvokeAttribute 属性 是被动操作 行为, IOperationBehavior (方法) 不向操作说明添加元数据。 将 WebInvokeAttribute 特性应用到服务操作无任何效果,除非将在操作说明中查找此元数据的行为(如 WebHttpBehavior)添加到服务的行为集合中。 WebInvokeAttribute 会确定服务操作响应的 HTTP 方法。 默认情况下,所有已应用 WebInvokeAttribute 的方法都会响应 POST 请求。 Method 属性允许您指定不同的 HTTP 方法。 如果您希望服务操作响应 GET,请改用 WebGetAttribute

构造函数

WebInvokeAttribute()

初始化 WebInvokeAttribute 类的新实例。

属性

BodyStyle

获取或设置传入与传出服务操作的消息的正文样式。

IsBodyStyleSetExplicitly

获取 IsBodyStyleSetExplicitly 属性。

IsRequestFormatSetExplicitly

获取 IsRequestFormatSetExplicitly 属性。

IsResponseFormatSetExplicitly

获取 IsResponseFormatSetExplicitly 属性。

Method

获取或设置服务操作响应的协议(如 HTTP)方法。

RequestFormat

获取或设置 RequestFormat 属性。

ResponseFormat

获取或设置 ResponseFormat 属性。

TypeId

在派生类中实现时,获取此 Attribute 的唯一标识符。

(继承自 Attribute)
UriTemplate

用于服务操作的统一资源标识符 (URI) 模板。

方法

Equals(Object)

返回一个值,该值指示此实例是否与指定的对象相等。

(继承自 Attribute)
GetHashCode()

返回此实例的哈希代码。

(继承自 Attribute)
GetType()

获取当前实例的 Type

(继承自 Object)
IsDefaultAttribute()

在派生类中重写时,指示此实例的值是否是派生类的默认值。

(继承自 Attribute)
Match(Object)

当在派生类中重写时,返回一个指示此实例是否等于指定对象的值。

(继承自 Attribute)
MemberwiseClone()

创建当前 Object 的浅表副本。

(继承自 Object)
ToString()

返回表示当前对象的字符串。

(继承自 Object)

显式接口实现

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

将一组名称映射为对应的一组调度标识符。

(继承自 Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

检索对象的类型信息,然后可以使用该信息获取接口的类型信息。

(继承自 Attribute)
_Attribute.GetTypeInfoCount(UInt32)

检索对象提供的类型信息接口的数量(0 或 1)。

(继承自 Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

提供对某一对象公开的属性和方法的访问。

(继承自 Attribute)
IOperationBehavior.AddBindingParameters(OperationDescription, BindingParameterCollection)

实现 AddBindingParameters(OperationDescription, BindingParameterCollection) 方法。

IOperationBehavior.ApplyClientBehavior(OperationDescription, ClientOperation)

实现 ApplyClientBehavior(OperationDescription, ClientOperation) 方法。

IOperationBehavior.ApplyDispatchBehavior(OperationDescription, DispatchOperation)

实现 ApplyDispatchBehavior(OperationDescription, DispatchOperation) 方法。

IOperationBehavior.Validate(OperationDescription)

实现 Validate(OperationDescription) 方法。

适用于