Condividi tramite


WebInvokeAttribute Classe

Definizione

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à
WebInvokeAttribute
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)

Implementazioni dell'interfaccia esplicita

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

Esegue il mapping di un set di nomi a un set corrispondente di ID dispatch.

(Ereditato da Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Recupera le informazioni sul tipo relative a un oggetto, che possono essere usate per ottenere informazioni sul tipo relative a un'interfaccia.

(Ereditato da Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Recupera il numero delle interfacce di informazioni sul tipo fornite da un oggetto (0 o 1).

(Ereditato da Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Fornisce l'accesso a proprietà e metodi esposti da un oggetto.

(Ereditato da Attribute)
IOperationBehavior.AddBindingParameters(OperationDescription, BindingParameterCollection)

Implementa il metodo AddBindingParameters(OperationDescription, BindingParameterCollection).

IOperationBehavior.ApplyClientBehavior(OperationDescription, ClientOperation)

Implementa il metodo ApplyClientBehavior(OperationDescription, ClientOperation).

IOperationBehavior.ApplyDispatchBehavior(OperationDescription, DispatchOperation)

Implementa il metodo ApplyDispatchBehavior(OperationDescription, DispatchOperation).

IOperationBehavior.Validate(OperationDescription)

Implementa il metodo Validate(OperationDescription).

Si applica a