0

UriTemplate は、以下のような形式 (id={id} など) でない限り、文字列パラメーターのみをサポートすることを理解しました。たとえば、次のとおりです。

UriTemplate を使用して文字列以外を WCF RESTful サービスに渡すことはできますか?

ただし、次の作業を行うことはできません。2番目のパラメーターを文字列(文字列配列ではなく)に変更しても。この種の操作は、アドレス フィールドに URL を入力してブラウザから呼び出すことができますか?

[WebGet(ResponseFormat = WebMessageFormat.Json, 
        UriTemplate = "id={id}/legend={legend}/x={x}/y={y}")]
public Stream GetMapPicture(int id, string[] legend, double x, double y)

パラメータを文字列に変更して次のように入力すると、すべて機能します。

http://localhost:8732/Service1/id=732/legend=[343434, 555]/x=43/y=23

ありがとう!

4

1 に答える 1

1

私が質問に持っているリンクに答えがあります:

UriTemplate を使用して文字列以外を WCF RESTful サービスに渡すことはできますか?

String[]

おそらく、解析/逆シリアル化する必要がある文字列である必要があります。

ただし、1 つの int と 1 つの double を使用すると、次のようになります。

[ServiceContract]
public interface IService1
{
    [OperationContract]
    Stream GetMapPicture(int id, double x);
…
 public class Service1 : IService1
 {
    [WebGet(ResponseFormat = WebMessageFormat.Json, 
        UriTemplate = "MapPicture/?id={id}&x={x}")]
    public Stream GetMapPicture(int id, double x)
    {

そして、次のようにブラウザーから消費されます。

http://localhost:8732/service1/MapPicture/?id=3&x=6.21

誰もこれを重複としてタグ付けしていないため、ここにも回答を投稿しました。リンクとの違いは、2 つのパラメーターがアンパサンド (&) で結合されていることです。

-m

于 2014-09-11T12:10:35.180 に答える