Dot-Net
我可以使用 UriTemplate 將非字元串傳遞給 WCF RESTful 服務嗎?
我可以執行以下操作嗎?
[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