Dot-Net

我可以使用 UriTemplate 將非字元串傳遞給 WCF RESTful 服務嗎?

  • February 13, 2009

我可以執行以下操作嗎?

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

我希望我的服務既可以用作 RESTful 服務,也可以用作 RPC 樣式的 SOAP 服務。如果可能的話,我想將 int 保留為 int,而不是手動解析。

如果我沒記錯的話,路徑中的 UriTemplate 變數在使用 WebGet 或 WebInvoke 時總是解析為字元串。當 UriTemplate 變數位於 UriTemplate 的查詢部分時,您只能將它們綁定到 int、long 等。

正如 dthrasher 提到的,將 id 移動到 URI 的查詢部分。這對我有用:

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

有關 URI 不同部分的更多資訊,請參閱維基百科上的“URI 方案”: http ://en.wikipedia.org/wiki/URI_scheme

引用自:https://stackoverflow.com/questions/545988