我可以使用UriTemplate将非字符串传递给WCF RESTful服务吗?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (65)

我可以做以下吗?

[OperationContract]
[WebGet(UriTemplate = "/foo/{id}")]
string GetFoo(int id);

我希望我的服务既可以作为REST风格的服务,也可以作为RPC风格的SOAP服务。如果可能的话,我想保留INT为int,而不是手动解析。

提问于
用户回答回答于

如果我没有记错,当使用WebGet或WebInvoke时,路径中的UriTemplate变量总是会解析为字符串。当UriTemplate变量位于UriTemplate的查询部分时,只能将UriTemplate变量绑定到int,long等。

用户回答回答于

正如dthrasher提到的那样,将id移动到URI的查询部分。这对我有效:

[OperationContract]
[WebGet(UriTemplate = "/foo?id={id}")]
string GetFoo(int id);

有关URI的不同部分的更多信息,请参阅wikipedia上的“URI方案”:http : //en.wikipedia.org/wiki/URI_scheme

扫码关注云+社区