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 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
Héritage
WebInvokeAttribute
Attributs
Implémente

Exemples

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

Notes

Comme la propriété Method 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 de OperationContractAttribute et associe l'opération à un UriTemplate ainsi qu'à un 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, à moins qu’un comportement recherchant ces métadonnées dans la description de l’opération (tel que WebHttpBehavior) ne soit ajouté à la collection de comportements du service. Le WebInvokeAttribute détermine à quelle méthode HTTP répond une opération de service. Par défaut, toutes les méthodes auxquelles on a appliqué le WebInvokeAttribute répondent aux demandes POST. La propriété Method vous permet de spécifier une méthode HTTP différente. Si vous souhaitez qu'une opération de service réponde à GET, utilisez à la place le WebGetAttribute.

Constructeurs

WebInvokeAttribute()

Initialise une nouvelle instance de la classe WebInvokeAttribute.

Propriétés

BodyStyle

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

IsBodyStyleSetExplicitly

Obtient la propriété IsBodyStyleSetExplicitly.

IsRequestFormatSetExplicitly

Obtient la propriété IsRequestFormatSetExplicitly.

IsResponseFormatSetExplicitly

Obtient la propriété IsResponseFormatSetExplicitly.

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 propriété RequestFormat.

ResponseFormat

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

TypeId

Lors de l'implémentation dans une classe dérivée, obtient un identificateur unique pour l'objet Attribute.

(Hérité de Attribute)
UriTemplate

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

Méthodes

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 de cette instance.

(Hérité de Attribute)
GetType()

Obtient le 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 pour la classe dérivée.

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

En cas de substitution dans une classe dérivée, retourne une valeur indiquant si cette instance équivaut à un objet spécifié.

(Hérité de Attribute)
MemberwiseClone()

Crée une copie superficielle du Object actuel.

(Hérité de Object)
ToString()

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

(Hérité de Object)

Implémentations d’interfaces explicites

_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 pour 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 aux méthodes exposées par un objet.

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

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

IOperationBehavior.ApplyClientBehavior(OperationDescription, ClientOperation)

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

IOperationBehavior.ApplyDispatchBehavior(OperationDescription, DispatchOperation)

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

IOperationBehavior.Validate(OperationDescription)

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

S’applique à