Compartilhar via


WebInvokeAttribute Classe

Definição

Representa um atributo que indica que uma operação de serviço é logicamente uma operação de invocação e que ela pode ser chamada pelo modelo de programação REST do WCF.

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
Herança
WebInvokeAttribute
Atributos
Implementações

Exemplos

O exemplo a seguir mostra como usar o WebInvokeAttribute atributo.

Observação

Como a Method propriedade não está especificada no código a seguir, todas as operações de serviço são mapeadas para o método 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

Comentários

O WebInvokeAttribute atributo é aplicado a uma operação de serviço além da OperationContractAttribute operação e associa a operação a um UriTemplate verbo de transporte subjacente que representa uma invocação (por exemplo, HTTP POST, PUT ou DELETE). O WebInvokeAttribute atributo é um comportamento de operação passiva (os IOperationBehavior métodos não fazem nada) que adiciona metadados à descrição da operação. A aplicação do WebInvokeAttribute atributo a uma operação de serviço não tem efeito, a menos que um comportamento que procura esses metadados na descrição da operação (como WebHttpBehavior) seja adicionado à coleção de comportamento do serviço. Determina WebInvokeAttribute a qual método HTTP uma operação de serviço responde. Por padrão, todos os métodos que têm a WebInvokeAttribute resposta aplicada às solicitações POST. A Method propriedade permite que você especifique um método HTTP diferente. Se você quiser que uma operação de serviço responda ao GET, use-a WebGetAttribute em vez disso.

Construtores

WebInvokeAttribute()

Inicializa uma nova instância da classe WebInvokeAttribute.

Propriedades

BodyStyle

Obtém ou define o estilo do corpo das mensagens enviadas e recebidas da operação de serviço.

IsBodyStyleSetExplicitly

Obtém a propriedade IsBodyStyleSetExplicitly.

IsRequestFormatSetExplicitly

Obtém a propriedade IsRequestFormatSetExplicitly.

IsResponseFormatSetExplicitly

Obtém a propriedade IsResponseFormatSetExplicitly.

Method

Obtém ou define o método de protocolo (por exemplo, HTTP) que responde a operação de serviço.

RequestFormat

Obtém ou define a propriedade RequestFormat.

ResponseFormat

Obtém ou define a propriedade ResponseFormat.

TypeId

Quando implementado em uma classe derivada, obtém um identificador exclusivo para este Attribute.

(Herdado de Attribute)
UriTemplate

O modelo de URI (Uniform Resource Identifier) para a operação de serviço.

Métodos

Equals(Object)

Retorna um valor que indica se essa instância é igual a um objeto especificado.

(Herdado de Attribute)
GetHashCode()

Retorna o código hash para a instância.

(Herdado de Attribute)
GetType()

Obtém o Type da instância atual.

(Herdado de Object)
IsDefaultAttribute()

Quando substituído em uma classe derivada, indica se o valor dessa instância é o valor padrão para a classe derivada.

(Herdado de Attribute)
Match(Object)

Quando substituído em uma classe derivada, retorna um valor que indica se essa instância é igual a um objeto especificado.

(Herdado de Attribute)
MemberwiseClone()

Cria uma cópia superficial do Object atual.

(Herdado de Object)
ToString()

Retorna uma cadeia de caracteres que representa o objeto atual.

(Herdado de Object)

Implantações explícitas de interface

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

Mapeia um conjunto de nomes para um conjunto correspondente de identificadores de expedição.

(Herdado de Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Recupera as informações de tipo para um objeto, que pode ser usado para obter as informações de tipo para uma interface.

(Herdado de Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Retorna o número de interfaces de informações do tipo que um objeto fornece (0 ou 1).

(Herdado de Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Fornece acesso a propriedades e métodos expostos por um objeto.

(Herdado de Attribute)
IOperationBehavior.AddBindingParameters(OperationDescription, BindingParameterCollection)

Implementa o método AddBindingParameters(OperationDescription, BindingParameterCollection).

IOperationBehavior.ApplyClientBehavior(OperationDescription, ClientOperation)

Implementa o método ApplyClientBehavior(OperationDescription, ClientOperation).

IOperationBehavior.ApplyDispatchBehavior(OperationDescription, DispatchOperation)

Implementa o método ApplyDispatchBehavior(OperationDescription, DispatchOperation).

IOperationBehavior.Validate(OperationDescription)

Implementa o método Validate(OperationDescription).

Aplica-se a