Nous essayons de passer un nombre variable de valeur paires de clés à notre service en utilisant le WebGetAttribute et le UriTemplate pour exposer une interface REST. Ce que nous voulons faire:WCF: Comment passer un nombre variable de paramètres à un service permis de WebGet
[WebGet(UriTemplate="/Query/Select?{query}"]
Response Query(string query);
A côté client nous voulons spécifier des clés à plusieurs reprises, par exemple:
hllp: // localhost/MyService/Recherche/Sélectionner le champ = Nom & fieldsort = asc & champ = ID
Notre première approche a consisté à utiliser le UriTemplate et pour décomposer les valeurs-clés paires manuellement suivant:
[WebGet(UriTemplate="/Query/{*query}"]
ResponseQuery(string query);
Bu t Cela vaut pour segments et ainsi les URL comme
hllp: // localhost/MyService/Recherche/champ = Val% 3Due se décode automatiquement par WCF et "champ = Val = UE" seront transmis au Méthode de service
Pire encore, doubles URL codées obtenir complètement décodés aussi:
hllp: // localhost/MyService/Recherche/champ = Val% 253Due devient "champ = Val = UE" à nouveau.
Est-il possible, pour accéder à la chaîne de requête brute? Sinon, nous pouvons étendre/utilisation UriTemplate d'une autre façon, de travailler avec un nombre dynamique de paires de valeurs-clés?
mais comment passez-vous ces paramètres à votre méthode de service? – Nicolas