Partager via


WebInvokeAttribute Classe

Définition

Représente un attribut indiquant qu’une opération de service est logiquement une opération d’appel et qu’elle peut être appelée par le modèle de programmation REST 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
Héritage
WebInvokeAttribute
Attributs
Implémente

Exemples

L’exemple suivant montre comment utiliser l’attribut WebInvokeAttribute .

Note

Étant donné que la Method propriété n’est pas spécifiée dans le code suivant, toutes les opérations de service sont mappées à la méthode 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

Remarques

L’attribut WebInvokeAttribute est appliqué à une opération de service en plus des OperationContractAttribute opérations et associe l’opération à un UriTemplate verbe de transport sous-jacent qui représente un appel (par exemple, HTTP POST, PUT ou DELETE). L’attribut WebInvokeAttribute est un comportement d’opération passif (les IOperationBehavior méthodes ne font rien) qui ajoute des métadonnées à la description de l’opération. L’application de l’attribut WebInvokeAttribute à une opération de service n’a aucun effet, sauf si un comportement qui recherche ces métadonnées dans la description de l’opération (par exemple WebHttpBehavior) est ajouté à la collection de comportements du service. Détermine WebInvokeAttribute la méthode HTTP à laquelle une opération de service répond. Par défaut, toutes les méthodes qui ont appliqué WebInvokeAttribute répondent aux requêtes POST. La Method propriété vous permet de spécifier une autre méthode HTTP. Si vous souhaitez qu’une opération de service réponde à GET, utilisez la commande à la WebGetAttribute place.

Constructeurs

Nom Description
WebInvokeAttribute()

Initialise une nouvelle instance de la classe WebInvokeAttribute.

Propriétés

Nom Description
BodyStyle

Obtient ou définit le style de corps des messages envoyés à et à partir de l’opération de service.

IsBodyStyleSetExplicitly

Obtient la IsBodyStyleSetExplicitly propriété.

IsRequestFormatSetExplicitly

Obtient la IsRequestFormatSetExplicitly propriété.

IsResponseFormatSetExplicitly

Obtient la IsResponseFormatSetExplicitly propriété.

Method

Obtient ou définit la méthode de protocole (par exemple HTTP) à laquelle l’opération de service répond.

RequestFormat

Obtient ou définit la RequestFormat propriété.

ResponseFormat

Obtient ou définit la ResponseFormat propriété.

TypeId

En cas d’implémentation dans une classe dérivée, obtient un identificateur unique pour cette Attribute.

(Hérité de Attribute)
UriTemplate

Modèle URI (Uniform Resource Identifier) pour l’opération de service.

Méthodes

Nom Description
Equals(Object)

Retourne une valeur qui indique si cette instance est égale à un objet spécifié.

(Hérité de Attribute)
GetHashCode()

Retourne le code de hachage pour cette instance.

(Hérité de Attribute)
GetType()

Obtient la Type de l’instance actuelle.

(Hérité de Object)
IsDefaultAttribute()

En cas de substitution dans une classe dérivée, indique si la valeur de cette instance est la valeur par défaut de la classe dérivée.

(Hérité de Attribute)
Match(Object)

En cas de substitution dans une classe dérivée, retourne une valeur qui indique si cette instance est égale à un objet spécifié.

(Hérité de Attribute)
MemberwiseClone()

Crée une copie superficielle du Objectactuel.

(Hérité de Object)
ToString()

Retourne une chaîne qui représente l’objet actuel.

(Hérité de Object)

Implémentations d’interfaces explicites

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

Mappe un jeu de noms avec un jeu correspondant d'identificateurs de dispatch.

(Hérité de Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Récupère les informations de type d’un objet, qui peuvent être utilisées pour obtenir les informations de type d’une interface.

(Hérité de Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Récupère le nombre d'interfaces d'informations de type fourni par un objet (0 ou 1).

(Hérité de Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Fournit l’accès aux propriétés et méthodes exposées par un objet.

(Hérité de Attribute)
IOperationBehavior.AddBindingParameters(OperationDescription, BindingParameterCollection)

Implémente la AddBindingParameters(OperationDescription, BindingParameterCollection) méthode.

IOperationBehavior.ApplyClientBehavior(OperationDescription, ClientOperation)

Implémente la ApplyClientBehavior(OperationDescription, ClientOperation) méthode.

IOperationBehavior.ApplyDispatchBehavior(OperationDescription, DispatchOperation)

Implémente la ApplyDispatchBehavior(OperationDescription, DispatchOperation) méthode.

IOperationBehavior.Validate(OperationDescription)

Implémente la Validate(OperationDescription) méthode.

S’applique à