WebInvokeAttribute Klass

Definition

Representerar ett attribut som anger att en tjänståtgärd logiskt sett är en anropande åtgärd och att den kan anropas av WCF REST-programmeringsmodellen.

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
Arv
WebInvokeAttribute
Attribut
Implementeringar

Exempel

I följande exempel visas hur du använder attributet WebInvokeAttribute .

Note

Eftersom egenskapen Method inte anges i följande kod mappas alla tjänståtgärder till HTTP POST-metoden.

[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

Kommentarer

Attributet WebInvokeAttribute tillämpas på en tjänståtgärd utöver OperationContractAttribute och associerar åtgärden med ett UriTemplate samt ett underliggande transportverb som representerar ett anrop (till exempel HTTP POST, PUT eller DELETE). Attributet WebInvokeAttribute är ett passivt åtgärdsbeteende ( IOperationBehavior metoderna gör ingenting) som lägger till metadata i åtgärdsbeskrivningen. WebInvokeAttribute Att tillämpa attributet på en tjänståtgärd har ingen effekt om inte ett beteende som söker efter dessa metadata i åtgärdsbeskrivningen (till exempel WebHttpBehavior) läggs till i tjänstens beteendesamling. Avgör WebInvokeAttribute vilken HTTP-metod som en tjänståtgärd svarar på. Som standard svarar alla metoder som har tillämpats WebInvokeAttribute på POST-begäranden. Med Method egenskapen kan du ange en annan HTTP-metod. Om du vill att en tjänståtgärd ska svara på GET använder du i WebGetAttribute stället.

Konstruktorer

Name Description
WebInvokeAttribute()

Initierar en ny instans av WebInvokeAttribute klassen.

Egenskaper

Name Description
BodyStyle

Hämtar eller anger brödtextformatet för de meddelanden som skickas till och från tjänståtgärden.

IsBodyStyleSetExplicitly

Hämtar egenskapen IsBodyStyleSetExplicitly .

IsRequestFormatSetExplicitly

Hämtar egenskapen IsRequestFormatSetExplicitly .

IsResponseFormatSetExplicitly

Hämtar egenskapen IsResponseFormatSetExplicitly .

Method

Hämtar eller anger den protokollmetod (till exempel HTTP) som tjänståtgärden svarar på.

RequestFormat

Hämtar eller anger egenskapen RequestFormat .

ResponseFormat

Hämtar eller anger egenskapen ResponseFormat .

TypeId

När den implementeras i en härledd klass hämtar du en unik identifierare för den här Attribute.

(Ärvd från Attribute)
UriTemplate

URI-mallen (Uniform Resource Identifier) för tjänståtgärden.

Metoder

Name Description
Equals(Object)

Returnerar ett värde som anger om den här instansen är lika med ett angivet objekt.

(Ärvd från Attribute)
GetHashCode()

Returnerar hash-koden för den här instansen.

(Ärvd från Attribute)
GetType()

Hämtar den aktuella instansen Type .

(Ärvd från Object)
IsDefaultAttribute()

När den åsidosättas i en härledd klass anger du om värdet för den här instansen är standardvärdet för den härledda klassen.

(Ärvd från Attribute)
Match(Object)

När den åsidosätts i en härledd klass returneras ett värde som anger om den här instansen är lika med ett angivet objekt.

(Ärvd från Attribute)
MemberwiseClone()

Skapar en ytlig kopia av den aktuella Object.

(Ärvd från Object)
ToString()

Returnerar en sträng som representerar det aktuella objektet.

(Ärvd från Object)

Explicita gränssnittsimplementeringar

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

Mappar en uppsättning namn till en motsvarande uppsättning av sändningsidentifierare.

(Ärvd från Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Hämtar typinformationen för ett objekt, som kan användas för att hämta typinformationen för ett gränssnitt.

(Ärvd från Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Hämtar antalet typinformationsgränssnitt som ett objekt tillhandahåller (antingen 0 eller 1).

(Ärvd från Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Ger åtkomst till egenskaper och metoder som exponeras av ett objekt.

(Ärvd från Attribute)
IOperationBehavior.AddBindingParameters(OperationDescription, BindingParameterCollection)

Implementerar AddBindingParameters(OperationDescription, BindingParameterCollection) metoden.

IOperationBehavior.ApplyClientBehavior(OperationDescription, ClientOperation)

Implementerar ApplyClientBehavior(OperationDescription, ClientOperation) metoden.

IOperationBehavior.ApplyDispatchBehavior(OperationDescription, DispatchOperation)

Implementerar ApplyDispatchBehavior(OperationDescription, DispatchOperation) metoden.

IOperationBehavior.Validate(OperationDescription)

Implementerar Validate(OperationDescription) metoden.

Gäller för