WCF Web サービス に 数値 を 渡す 方法

0 件のコメント

WCFサービスにおいて、文字列でない int や long を サービス の パラメター(引数) に渡す方法を記載します。

インターフェースでは WebGet や WebInvoke を利用し、その中で UriTemplate を指定します。 この UriTemplate 中にでてくる Uri 変数 は基本的に string として解決されます。 数値(int、long)に変換するためには、クエリパラメターとして渡すと数値に変換できるようです。

以下にクエリパラメターを指定して数値を引き渡すサンプルコードおよびテストリクエストを掲載します。

サンプルコード

インターフェース

namespace WcfService
{
    using System.ServiceModel;
    using System.ServiceModel.Web;

    [ServiceContract]
    public interface IService1
    {
        [OperationContract]
        [WebInvoke(Method = "GET",
            RequestFormat = WebMessageFormat.Json,
            ResponseFormat = WebMessageFormat.Json,
            UriTemplate = "/Title?isbn={isbn}")]
        string GetTitle(int isbn);
    }
}

リクエスト

GET http://localhost:8000/Service/Title?isbn=1234 HTTP/1.1
User-Agent: Fiddler
Host: localhost:8000
Content-Length: 0

関連記事

参考記事