WebInvokeAttribute Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Rappresenta un attributo che indica che un'operazione del servizio è dal punto di vista logico un'operazione invoke e che può essere chiamata dal modello di programmazione REST di 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
- Ereditarietà
- Attributi
- Implementazioni
Esempio
Nell'esempio seguente viene illustrato l'utilizzo dell'attributo WebInvokeAttribute.
Nota
Dato che la proprietà Method non è specificata nel codice seguente, tutte le operazioni del servizio vengono mappate al metodo 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
Commenti
L'attributo WebInvokeAttribute è applicato a un'operazione del servizio oltre a OperationContractAttribute e associa l'operazione a un UriTemplate
nonché a un verbo di trasporto sottostante che rappresenta una chiamata (ad esempio, HTTP POST, PUT o DELETE). L'attributo WebInvokeAttribute è un comportamento di operazione passiva (i IOperationBehavior metodi non fanno nulla) che aggiunge metadati alla descrizione dell'operazione. L'applicazione dell’attributo WebInvokeAttribute a un’operazione del servizio non ha alcun effetto a meno che alla raccolta dei comportamenti del servizio non venga aggiunto un comportamento che ricerca questi metadati nella descrizione dell'operazione (ad esempio WebHttpBehavior). WebInvokeAttribute determina il metodo HTTP al quale risponde un'operazione del servizio. Per impostazione predefinita, tutti i metodi ai quali è applicato l’attributo WebInvokeAttribute rispondono a richieste POST. La proprietà Method consente di specificare un metodo HTTP diverso. Se si desidera che l’operazione del servizio risponda a GET, utilizzare invece WebGetAttribute.
Costruttori
WebInvokeAttribute() |
Inizializza una nuova istanza della classe WebInvokeAttribute. |
Proprietà
BodyStyle |
Ottiene o imposta lo stile del corpo dei messaggi inviati da e verso l'operazione del servizio. |
IsBodyStyleSetExplicitly |
Ottiene la proprietà IsBodyStyleSetExplicitly. |
IsRequestFormatSetExplicitly |
Ottiene la proprietà IsRequestFormatSetExplicitly. |
IsResponseFormatSetExplicitly |
Ottiene la proprietà IsResponseFormatSetExplicitly. |
Method |
Ottiene o imposta il metodo del protocollo (ad esempio HTTP) al quale risponde l'operazione del servizio. |
RequestFormat |
Ottiene o imposta la proprietà RequestFormat. |
ResponseFormat |
Ottiene o imposta la proprietà ResponseFormat. |
TypeId |
Quando è implementata in una classe derivata, ottiene un identificatore univoco della classe Attribute. (Ereditato da Attribute) |
UriTemplate |
Il modello Uniform Resource Identifier (URI) per l'operazione del servizio. |
Metodi
Equals(Object) |
Restituisce un valore che indica se questa istanza è uguale a un oggetto specificato. (Ereditato da Attribute) |
GetHashCode() |
Restituisce il codice hash per l'istanza. (Ereditato da Attribute) |
GetType() |
Ottiene l'oggetto Type dell'istanza corrente. (Ereditato da Object) |
IsDefaultAttribute() |
In caso di override in una classe derivata, indica se il valore di questa istanza è il valore predefinito per la classe derivata. (Ereditato da Attribute) |
Match(Object) |
Quando è sottoposto a override in una classe derivata, restituisce un valore che indica se questa istanza equivale a un oggetto specificato. (Ereditato da Attribute) |
MemberwiseClone() |
Crea una copia superficiale dell'oggetto Object corrente. (Ereditato da Object) |
ToString() |
Restituisce una stringa che rappresenta l'oggetto corrente. (Ereditato da Object) |