Freigeben über


WebInvokeAttribute Klasse

Definition

Stellt ein Attribut dar, das angibt, dass ein Dienstvorgang logisch als Aufrufvorgang gilt und mit dem das WCF-REST-Programmiermodell aufgerufen werden kann.

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
Vererbung
WebInvokeAttribute
Attribute
Implementiert

Beispiele

Im folgenden Beispiel wird die Verwendung des WebInvokeAttribute-Attributs veranschaulicht.

Hinweis

Da die Method-Eigenschaft im folgenden Code nicht angegeben wurde, werden alle Dienstvorgänge der HTTP POST-Methode zugeordnet.

[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

Hinweise

Das WebInvokeAttribute Attribut wird zusätzlich zu einem OperationContractAttribute Dienstvorgang sowie zu einem UriTemplate zugrunde liegenden Transportverb angewendet, das einen Aufruf darstellt (z. B. HTTP POST, PUT oder DELETE). Das WebInvokeAttribute Attribut ist ein passives Vorgangsverhalten (die IOperationBehavior Methoden tun nichts), das metadaten zur Vorgangsbeschreibung hinzufügt. Die Anwendung des WebInvokeAttribute-Attributs auf einen Dienstvorgang hat nur dann Auswirkungen, wenn ein Verhalten, das in der Vorgangsbeschreibung nach diesen Metadaten sucht (beispielsweise WebHttpBehavior), der Verhaltensauflistung des Diensts hinzugefügt wird. Das WebInvokeAttribute-Attribut bestimmt die HTTP-Methode, auf die ein Dienstvorgang antwortet. Standardmäßig antworten alle Methoden, für die das WebInvokeAttribute-Attribut übernommen wurde, auf POST-Anforderungen. Mit der Method-Eigenschaft können Sie eine andere HTTP-Methode angeben. Wenn Sie möchten, dass ein Dienstvorgang auf GET-Anforderungen antwortet, verwenden Sie stattdessen das WebGetAttribute-Attribut.

Konstruktoren

WebInvokeAttribute()

Initialisiert eine neue Instanz der WebInvokeAttribute-Klasse.

Eigenschaften

BodyStyle

Ruft das Textformat der Nachrichten ab, die an den Dienstvorgang bzw. von dem Dienstvorgang gesendet werden, oder legt dieses fest.

IsBodyStyleSetExplicitly

Ruft die IsBodyStyleSetExplicitly-Eigenschaft ab.

IsRequestFormatSetExplicitly

Ruft die IsRequestFormatSetExplicitly-Eigenschaft ab.

IsResponseFormatSetExplicitly

Ruft die IsResponseFormatSetExplicitly-Eigenschaft ab.

Method

Ruft die Protokollmethode ab, auf die der Dienstvorgang antwortet (z. B. HTTP), oder legt sie fest.

RequestFormat

Ruft die RequestFormat-Eigenschaft ab oder legt diese fest.

ResponseFormat

Ruft die ResponseFormat-Eigenschaft ab oder legt diese fest.

TypeId

Ruft bei Implementierung in einer abgeleiteten Klasse einen eindeutigen Bezeichner für dieses Attribute ab.

(Geerbt von Attribute)
UriTemplate

Die URI-Vorlage (URI = Uniform Resource Identifier) für den Dienstvorgang.

Methoden

Equals(Object)

Gibt einen Wert zurück, der angibt, ob diese Instanz gleich einem angegebenen Objekt ist.

(Geerbt von Attribute)
GetHashCode()

Gibt den Hashcode für diese Instanz zurück.

(Geerbt von Attribute)
GetType()

Ruft den Type der aktuellen Instanz ab.

(Geerbt von Object)
IsDefaultAttribute()

Gibt beim Überschreiben in einer abgeleiteten Klasse an, ob der Wert der Instanz der Standardwert für die abgeleitete Klasse ist.

(Geerbt von Attribute)
Match(Object)

Beim Überschreiben in einer abgeleiteten Klasse wird ein Wert zurückgegeben, der angibt, ob diese Instanz einem bestimmten Objekt entspricht.

(Geerbt von Attribute)
MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.

(Geerbt von Object)
ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.

(Geerbt von Object)

Explizite Schnittstellenimplementierungen

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

Ordnet eine Reihe von Namen einer entsprechenden Reihe von Dispatchbezeichnern zu.

(Geerbt von Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Ruft die Typinformationen für ein Objekt ab, mit deren Hilfe die Typinformationen für eine Schnittstelle abgerufen werden können.

(Geerbt von Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Ruft die Anzahl der Schnittstellen mit Typinformationen ab, die von einem Objekt bereitgestellt werden (0 oder 1).

(Geerbt von Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Stellt den Zugriff auf von einem Objekt verfügbar gemachte Eigenschaften und Methoden bereit.

(Geerbt von Attribute)
IOperationBehavior.AddBindingParameters(OperationDescription, BindingParameterCollection)

Implementiert die AddBindingParameters(OperationDescription, BindingParameterCollection)-Methode.

IOperationBehavior.ApplyClientBehavior(OperationDescription, ClientOperation)

Implementiert die ApplyClientBehavior(OperationDescription, ClientOperation)-Methode.

IOperationBehavior.ApplyDispatchBehavior(OperationDescription, DispatchOperation)

Implementiert die ApplyDispatchBehavior(OperationDescription, DispatchOperation)-Methode.

IOperationBehavior.Validate(OperationDescription)

Implementiert die Validate(OperationDescription)-Methode.

Gilt für