如何在 WCF Rest Service 中传递多个参数?
Posted
技术标签:
【中文标题】如何在 WCF Rest Service 中传递多个参数?【英文标题】:How to pass multiple parameters in WCF Rest Service? 【发布时间】:2012-03-12 00:05:36 【问题描述】:我正在用 C# 开发 WCF REST 服务。它适用于单个参数。现在我需要扩展它以支持多个参数。请帮我解决这个问题。
提前谢谢...
在接口中使用以下声明:
[OperationContract]
[WebInvoke(Method = "POST",
ResponseFormat = WebMessageFormat.Xml,
RequestFormat = WebMessageFormat.Xml,
BodyStyle = WebMessageBodyStyle.WrappedRequest,
UriTemplate = "login")]
resLogin Login(reqLogin rData, int floorId);
【问题讨论】:
【参考方案1】:看看UriTemplate parameters。可以使用QueryString或URL路径传入floorId
参数。
URI路径参数
[WebInvoke(Method = "POST", UriTemplate = "login/floor/floorId")]
resLogin Login(reqLogin rData, int floorId);
查询字符串参数
[WebInvoke(Method = "POST", UriTemplate = "login?floorId=floorId")]
resLogin Login(reqLogin rData, int floorId);
【讨论】:
非常感谢它工作正常...如果我们想传递两个对象,例如 resLogin Login(reqLogin rData, reqFloor floorObj);我们如何完成这项任务... @kasuntharanga - 请发布一个新问题并将其标记为已回答。 SO 不是讨论论坛。【参考方案2】:在 OperationContract 上添加 BodyStyle
[WebInvoke(Method = "POST", BodyStyle = WebMessageBodyStyle.WrappedRequest)]
【讨论】:
以上是关于如何在 WCF Rest Service 中传递多个参数?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 WCF Rest Service 中将类对象作为参数传递
web service, wcf, wcf rest, web api之间的区别