我正在开发一个 WCF 休息服务,该服务需要接收一个名称值对的列表。这些值尚不清楚,因此我们需要使用名称值对的通用列表。
我尝试了多种方法,但我不确定最好的方法是什么。我想我可以访问 HttpContext 并从请求正文中提取值,但我无法做到这一点。
让 WCF 操作接收带有名称值对列表的 HTTP Post 的最佳方法是什么,以便可以在操作中读取它们,类似于您将其从 Request["Key"] 中拉出的方式?
一个选项是创建一个 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);