Как установить два значения в одном имени с UriTemplate? - PullRequest
0 голосов
/ 05 декабря 2009

Я создал этот код:

[OperationContract]
[WebGet(UriTemplate = "detect?v=1.0&q={q}", BodyStyle = WebMessageBodyStyle.Bare)]
DetectLanguage GetDetectLanguage(string q);

[OperationContract]
[WebGet(UriTemplate = "translate?v=1.0&q={query}&(langpair={from}|{to})", BodyStyle = WebMessageBodyStyle.Bare)]
TranslateLanguage GetTranslateLanguage(string query, string from, string to);

Но я получаю эту ошибку:

UriTemplate 'translate?v=1.0&q={query}&(langpair={from}|{to})' недействительно; каждая часть Строка запроса должна иметь форму 'name=value', когда значение не может быть составной сегмент. Увидеть документация для UriTemplate для более подробности.

Я знаю (name=value). Как мне получить Name={value1}|{value2}? Возможно ли это?

Или любое другое решение!

1 Ответ

0 голосов
/ 05 декабря 2009

Как объясняется в сообщении об ошибке, вы не можете иметь langpair={from}|{to}, потому что это, по-видимому, составное значение.

Вы можете использовать форму

langpair={langpair}

и затем используйте String.Split в вашем методе, чтобы получить две части:

string langpair = "en|fr";
string[] parts = langpair.Split('|');
string from = parts[0];  // "en"
string to = parts[1];    // "fr"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...