Mise à jour : novembre 2007
Indique 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 Web.
Espace de noms :
System.ServiceModel.Web
Assembly :
System.ServiceModel.Web (dans System.ServiceModel.Web.dll)
Visual Basic (Déclaration)
<AttributeUsageAttribute(AttributeTargets.Method)> _
Public NotInheritable Class WebInvokeAttribute _
Inherits Attribute _
Implements IOperationBehavior, IWmiInstanceProvider
Visual Basic (Utilisation)
Dim instance As WebInvokeAttribute
[AttributeUsageAttribute(AttributeTargets.Method)]
public sealed class WebInvokeAttribute : Attribute,
IOperationBehavior, IWmiInstanceProvider
[AttributeUsageAttribute(AttributeTargets::Method)]
public ref class WebInvokeAttribute sealed : public Attribute,
IOperationBehavior, IWmiInstanceProvider
/** @attribute AttributeUsageAttribute(AttributeTargets.Method) */
public final class WebInvokeAttribute extends Attribute implements IOperationBehavior,
IWmiInstanceProvider
public final class WebInvokeAttribute extends Attribute implements IOperationBehavior, IWmiInstanceProvider
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 méthodes IOperationBehavior 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.
L'exemple suivant montre comment utiliser l'attribut WebInvokeAttribute.
Remarque : |
|---|
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()> _
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
[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);
}
System..::.Object
System..::.Attribute
System.ServiceModel.Web..::.WebInvokeAttribute
Tous les membres static (Shared en Visual Basic) publics de ce type sont thread-safe. Il n'est pas garanti que les membres d'instance soient thread-safe.
Windows Vista, Windows XP SP2, Windows Server 2003
Le .NET Framework et le .NET Compact Framework ne prennent pas en charge toutes les versions de chaque plateforme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise du .NET Framework.
.NET Framework
Pris en charge dans : 3.5
Référence