The parameter would have to create a JSON object to send to the service in a format similar to:
{"kvPairs":[{"Key":"key1","Value":"value1"}, {"Key":"key2","Value":"value2"}]}
On the service side, configure a method similar to the following:
[OperationContract] [WebInvoke(Method = "POST", BodyStyle = WebMessageBodyStyle.WrappedRequest, RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json, UriTemplate = "")] string DoSomething(Dictionary<string, string> kvPairs);
source share