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!
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.
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.