WebInvokeAttribute Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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
- 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) |