POST mehrere Parameter an den WCF-Dienst

8

Ich versuche, WCF zu verstehen, also sind meine Fragen vielleicht dumm. Ich glaube, ich habe ein festes Verständnis von "GET" -Operationen. Ich arbeite jetzt an einigen "POST" -Operationen. Meine Frage ist, kann ich eine WCF-Service-Operation mit WebInvoke schreiben, die mehrere Parameter akzeptiert? Oder, wenn ich Daten POST, akzeptiert es nur einen einzigen serialisierten Parameter?

Danke!

    
user208662 06.02.2011, 14:44
quelle

2 Antworten

7

Ja, aber Ihr POST muss mit einem gemeinsamen Verständnis der Daten, auch als "Datenvertrag" bezeichnet, weitergegeben werden.

In WCF ist der typische Ansatz hier, dass Sie eine Vertragsklasse erstellen würden (nur ein Beispiel, das nicht zu 100% funktioniert).

%Vor%

Dann würden Sie Ihren WCF-Vorgang angeben, um diesen Vertragstyp als Parameter zu akzeptieren

%Vor%

Auf Ihrem Client würden Sie die Daten in einem xml / json serialisieren, das Ihrem Vertrag entspricht. Noch einmal, loses Beispiel:

%Vor%

Wenn der Vertrag übereinstimmt, wird WCF Ihren POST in Ihr Vertragsobjekt deserialisieren, und Sie können ihn dann wie jede andere Klasse verwenden.

    
Taylor Bird 06.02.2011, 14:57
quelle
6

Es scheint, als gäbe es ein wenig Verwirrung zwischen dem WCF (das ist der Name, der Microsofts allgemeiner Abstraktion für die Netzwerkprogrammierung gegeben wird) und einem spezifischen Protokoll HTTP , das Verben wie" POST "und" GET "definiert, die von der Kommunikation verwendet werden.

Wenn Sie einen Dienst definieren und ihn mit [WebInvoke] verknüpfen, greifen Sie über REST über HTTP auf den Dienst zu. Weitere Informationen finden Sie unter webinvoke , die Anmerkungen fassen es jedoch gut zusammen / p>

  

Das WebInvokeAttribute-Attribut ist   angewendet auf eine Serviceoperation in   Neben dem   OperationContractAttribute und   verknüpft die Operation mit a   UriTemplate sowie ein Underlying   Transport Verb, das ein darstellt   Aufruf (z. B. HTTP POST,   PUT oder DELETE). Das   Das WebInvokeAttribute-Attribut ist a   passives Betriebsverhalten (das   IOperationBehavior-Methoden tun nichts)   Das fügt der Operation Metadaten hinzu   Beschreibung. Anwenden der   WebInvokeAttribute-Attribut zu a   Service Operation hat keine Wirkung, es sei denn   ein Verhalten, das danach sucht   Metadaten in der Operationsbeschreibung   (z. B. WebHttpBehavior) wird hinzugefügt   die Verhaltenssammlung des Dienstes. Das   WebInvokeAttribute bestimmt was   HTTP-Methode, die eine Serviceoperation ist   antwortet auf. Standardmäßig alle Methoden   die das WebInvokeAttribute haben   angewendet antworten auf POST-Anfragen.

Weiter unten definiert der Artikel, wie Sie Ihrem Servicevertrag Werte zuordnen. Etwas wie ..

%Vor%

BEARBEITEN: Dies soll informativer für neue Leute auf dem Gebiet sein.

almog.ori 06.02.2011 15:04
quelle

Tags und Links