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