如何在 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 中将类对象作为参数传递

传递流时出现 Wcf Rest Service 错误

将复杂对象传递到 WCF Rest 服务

web service, wcf, wcf rest, web api之间的区别

如何使用 WCF Rest AngularJs 填充下拉列表

验证WCF Rest Service中Json对象的结构