WebInvokeAttribute Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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
- 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) |