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
関連記事
参考記事
最後に… このブログに興味を持っていただけた方は、 ぜひ 「Facebookページ に いいね!」または 「Twitter の フォロー」 お願いします!!