. Мы пытаемся передать переменное число пар ключ-значение нашей службе, используя атрибут WebGetAttribute и UriTemplate, чтобы открыть интерфейс REST. Что мы хотим сделать:WCF: как передать переменное количество параметров службе, включенной в WebGet.
[WebGet(UriTemplate="/Query/Select?{query}"]
Response Query(string query);
На стороне клиента мы хотим указать некоторые клавиши несколько раз, например:
HLLP: // локальный/MyService/Query/Выбор поля = Имя & fieldsort = возрастанию & поле ID =
Наш первый подход заключается в использовании следующей UriTemplate и разлагаться ключ-значение-пары вручную:
[WebGet(UriTemplate="/Query/{*query}"]
ResponseQuery(string query);
Bu т это только относится к сегментам и поэтому URL-адрес, как
HLLP: // локальный/MyService/Query/поле = Val% 3Due получить автоматически декодируется WCF и «поле = Val = уй» будет передан в Метод обслуживания.
Еще хуже, двойные закодированные URL, получить полностью декодируется, также:
HLLP: // локальной/MyService/Query/поле = Val% 253Due становится "поле = Val = уй" снова.
Есть ли способ доступа к строке необработанных запросов? Если нет, можем ли мы расширить/использовать UriTemplate по-другому, чтобы работать с динамическим числом пар ключ-значение?
но как вы передаете эти параметры вашему методу обслуживания? – Nicolas