2012-07-03 5 views
4

Je travaille sur un service de repos WCF qui devra prendre en charge une liste de paires de valeurs de valeurs NAme. Ces valeurs ne sont pas encore connues, c'est pourquoi nous devons utiliser une liste générique de paires de valeurs de noms.WCF HTTP POST Service de repos avec paramètres de dictionnaire

J'ai essayé plusieurs méthodes, mais je ne suis pas sûr de la meilleure façon de le faire. J'ai pensé que je serais capable d'accéder à HttpContext et retirer les valeurs du corps de la demande, mais je suis incapable de le faire. Quelle est la meilleure façon d'avoir une opération WCF qui accepte un message HTTP avec une paire de noms de valeurs de nom afin qu'ils puissent être lus dans l'opération de la même manière que vous le retireriez de la demande ["Clé"] ]?

Répondre

8

Une option serait de créer un objet JSON pour poster au service avec un format similaire à:

{"kvPairs":[{"Key":"key1","Value":"value1"}, {"Key":"key2","Value":"value2"}]} 

Du côté du service, mis en place une méthode similaire à ce qui suit:

[OperationContract] 
[WebInvoke(Method = "POST", BodyStyle = WebMessageBodyStyle.WrappedRequest, RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json, UriTemplate = "")] 
string DoSomething(Dictionary<string, string> kvPairs); 
+0

Ou [{"Key": "key1", "Value": "valeur1"}, {"Key": "key2", "Valeur": "valeur2"}] sans BodyStyle – mecek

Questions connexes