我需要创建一个Post WCF操作。我需要用户传入几个参数。我看到的所有示例都假设用户只会发送一个参数。我怎么能做到这一点?客户端发送的网址不会很长吗?
[OperationContract]
[WebInvoke(Method = "POST", UriTemplate = "changeStatus/{ID}/{userID}/{activityDate}/{locationID}/{attachmentID}/{descriptionID}", RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json)]
void ChangeStatus(Guid ID, Guid userID, DateTime activityDate, Guid locationID, Guid attachmentID = default(Guid), Guid descriptionID = default(Guid));
答案 0 :(得分:0)
您可以设置ChangeStatus方法以接收KeyValuePair类型的数组,然后您可以遍历数组并获取所需的值。当我需要发送多个或两个参数时,这通常是我构建Web服务的方式。
如果客户端正在执行POST来调用您的服务,那么数据可以作为对象传递而不是在查询字符串中传递,但如果它是通过查询字符串发送的,则是,url可能会变得非常长。