5

我正在开发一个 WCF 休息服务,该服务需要接收一个名称值对的列表。这些值尚不清楚,因此我们需要使用名称值对的通用列表。

我尝试了多种方法,但我不确定最好的方法是什么。我想我可以访问 HttpContext 并从请求正文中提取值,但我无法做到这一点。

让 WCF 操作接收带有名称值对列表的 HTTP Post 的最佳方法是什么,以便可以在操作中读取它们,类似于您将其从 Request["Key"] 中拉出的方式?

4

1 回答 1

10

一个选项是创建一个 JSON 对象以发布到服务,其格式类似于:

{"kvPairs":[{"Key":"key1","Value":"value1"}, {"Key":"key2","Value":"value2"}]}

在服务端,设置类似如下的方法:

[OperationContract]
[WebInvoke(Method = "POST", BodyStyle = WebMessageBodyStyle.WrappedRequest, RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json, UriTemplate = "")]
string DoSomething(Dictionary<string, string> kvPairs);
于 2012-07-03T20:31:34.357 回答