Partilhar 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 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 por 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 o WebInvokeAttribute aplicado respondem à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

Nome Description
WebInvokeAttribute()

Inicializa uma nova instância da classe WebInvokeAttribute.

Propriedades

Nome Description
BodyStyle

Obtém ou define o estilo do corpo das mensagens que são enviadas de e para a operação de serviço.

IsBodyStyleSetExplicitly

Obtém a IsBodyStyleSetExplicitly propriedade.

IsRequestFormatSetExplicitly

Obtém a IsRequestFormatSetExplicitly propriedade.

IsResponseFormatSetExplicitly

Obtém a IsResponseFormatSetExplicitly propriedade.

Method

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

RequestFormat

Obtém ou define a RequestFormat propriedade.

ResponseFormat

Obtém ou define a ResponseFormat propriedade.

TypeId

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

(Herdado de Attribute)
UriTemplate

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

Métodos

Nome Description
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 dessa 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 Objectatual.

(Herdado de Object)
ToString()

Retorna uma cadeia de caracteres que representa o objeto atual.

(Herdado de Object)

Implantações explícitas de interface

Nome Description
_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 de um objeto, que podem ser usadas para obter as informações de tipo de 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 AddBindingParameters(OperationDescription, BindingParameterCollection) método.

IOperationBehavior.ApplyClientBehavior(OperationDescription, ClientOperation)

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

IOperationBehavior.ApplyDispatchBehavior(OperationDescription, DispatchOperation)

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

IOperationBehavior.Validate(OperationDescription)

Implementa o Validate(OperationDescription) método.

Aplica-se a