我创建了这段代码:
[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}
?有可能吗?
或任何其他解决方案!
答案 0 :(得分:0)
正如错误消息所解释的那样,您不能拥有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"