Udostępnij za pośrednictwem


WebInvokeAttribute Klasa

Definicja

Reprezentuje atrybut wskazujący, że operacja usługi jest logicznie operacją wywołania i że może być wywoływana przez model programowania 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
Dziedziczenie
WebInvokeAttribute
Atrybuty
Implementuje

Przykłady

W poniższym przykładzie pokazano, jak używać atrybutu WebInvokeAttribute .

Uwaga

Method Ponieważ właściwość nie jest określona w poniższym kodzie, wszystkie operacje usługi są mapowane na metodę 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

Uwagi

Atrybut WebInvokeAttribute jest stosowany do operacji usługi oprócz OperationContractAttribute operacji i kojarzy operację z elementem a UriTemplate także bazowym czasownikiem transportu, który reprezentuje wywołanie (na przykład HTTP POST, PUT lub DELETE). Atrybut WebInvokeAttribute jest zachowaniem operacji pasywnej ( IOperationBehavior metody nic nie robią), które dodaje metadane do opisu operacji. Zastosowanie atrybutu WebInvokeAttribute do operacji usługi nie ma wpływu, chyba że zachowanie wyszukujące te metadane w opisie operacji (na przykład WebHttpBehavior) jest dodawane do kolekcji zachowań usługi. Określa WebInvokeAttribute metodę HTTP, na którą odpowiada operacja usługi. Domyślnie wszystkie metody, które mają WebInvokeAttribute zastosowane odpowiedzi na żądania POST. Właściwość Method umożliwia określenie innej metody HTTP. Jeśli chcesz, aby operacja usługi odpowiadała na polecenie GET, użyj polecenia WebGetAttribute zamiast tego.

Konstruktory

WebInvokeAttribute()

Inicjuje nowe wystąpienie klasy WebInvokeAttribute.

Właściwości

BodyStyle

Pobiera lub ustawia styl treści komunikatów wysyłanych do i z operacji usługi.

IsBodyStyleSetExplicitly

IsBodyStyleSetExplicitly Pobiera właściwość .

IsRequestFormatSetExplicitly

IsRequestFormatSetExplicitly Pobiera właściwość .

IsResponseFormatSetExplicitly

IsResponseFormatSetExplicitly Pobiera właściwość .

Method

Pobiera lub ustawia metodę protokołu (na przykład HTTP), na która odpowiada operacja usługi.

RequestFormat

Pobiera lub ustawia RequestFormat właściwość.

ResponseFormat

Pobiera lub ustawia ResponseFormat właściwość.

TypeId

Po zaimplementowaniu w klasie pochodnej pobiera unikatowy identyfikator dla tego elementu Attribute.

(Odziedziczone po Attribute)
UriTemplate

Szablon Uniform Resource Identifier (URI) dla operacji usługi.

Metody

Equals(Object)

Zwraca wartość wskazującą, czy to wystąpienie jest równe podanemu obiektowi.

(Odziedziczone po Attribute)
GetHashCode()

Zwraca wartość skrótu dla tego wystąpienia.

(Odziedziczone po Attribute)
GetType()

Type Pobiera bieżące wystąpienie.

(Odziedziczone po Object)
IsDefaultAttribute()

W przypadku zastąpienia w klasie pochodnej wskazuje, czy wartość tego wystąpienia jest wartością domyślną klasy pochodnej.

(Odziedziczone po Attribute)
Match(Object)

W przypadku zastąpienia w klasie pochodnej zwraca wartość wskazującą, czy to wystąpienie jest równe określonemu obiektowi.

(Odziedziczone po Attribute)
MemberwiseClone()

Tworzy płytkią kopię bieżącego Objectelementu .

(Odziedziczone po Object)
ToString()

Zwraca ciąg reprezentujący bieżący obiekt.

(Odziedziczone po Object)

Jawne implementacje interfejsu

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

Zestaw nazw jest mapowany na odpowiedni zestaw identyfikatorów wysyłania.

(Odziedziczone po Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Pobiera informacje o typie obiektu, którego można użyć do pobrania informacji o typie interfejsu.

(Odziedziczone po Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Pobiera informację o liczbie typów interfejsów, jakie zawiera obiekt (0 lub 1).

(Odziedziczone po Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Umożliwia dostęp do właściwości i metod udostępnianych przez obiekt.

(Odziedziczone po Attribute)
IOperationBehavior.AddBindingParameters(OperationDescription, BindingParameterCollection)

Implementuje metodę AddBindingParameters(OperationDescription, BindingParameterCollection) .

IOperationBehavior.ApplyClientBehavior(OperationDescription, ClientOperation)

Implementuje metodę ApplyClientBehavior(OperationDescription, ClientOperation) .

IOperationBehavior.ApplyDispatchBehavior(OperationDescription, DispatchOperation)

Implementuje metodę ApplyDispatchBehavior(OperationDescription, DispatchOperation) .

IOperationBehavior.Validate(OperationDescription)

Implementuje metodę Validate(OperationDescription) .

Dotyczy