在WCF服务中传递Dictionary

use*_*079 5 wcf web-services

可能重复:
如何通过WCF序列化Dictionary <string,string>?

如何在WCf中的方法中传递字典...
我正在这样做

public void SendData(Dictionary<string, string > data)
{
    foreach (KeyValuePair<string, string> item in data)
    {
        Console.WriteLine("{0} : {1}", item.Key, item.Value);
    }
}
Run Code Online (Sandbox Code Playgroud)

当我在192.XXX//Akhil/service.svc/SendData?data= {}
这里访问它时我/我应该如何在数据中传递参数...请举例说明.

CkH*_*CkH 5

生成您的代理(说,"TestProxy"),然后执行:

TestProxy.YourServiceClient client = new TestProxy.YourServiceClient();

Dictionary<string, string> testDict = new Dictionary<string, string>();

testDict.Add("test", "test1");

client.SendData(testDict);
Run Code Online (Sandbox Code Playgroud)

WCF会毫无问题地序列化您的词典.这里的问题是您尝试访问WCF服务,就像通过HTTP Get请求将其作为REST服务公开一样.我很确定根据您的问题,您不会将此作为REST服务公开.如果您希望能够获取请求,那么谷歌.Net WCF REST.

*注意:您可能还想查看请求/响应SOA模式,它将为您节省大量的麻烦.

更新:

以下是一些可能指向正确方向的链接,您可能希望将WCF服务公开为JSON端点.

JSON/REST链接

在此LINK中搜索字典以获取有关WCF JSON中的替代和陷阱的一些详细信息.

希望这些帮助.我从来没有做过Iphone应用,所以我没有任何源代码可以给你.