在WCF服务中传递Dictionary

时间:2010-08-17 10:04:19

标签: wcf web-services

  

可能重复:
  How to serialize Dictionary<string, string> through WCF?

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

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

当我以192.X.X.X // Akhil / service.svc / SendData?data = {}访问它时 这是什么/如何在数据中传递参数...请举例说明。

1 个答案:

答案 0 :(得分:5)

生成您的代理(Say,“TestProxy”)然后执行:

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

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

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

client.SendData(testDict);

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

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

<强>更新

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

JSON / REST Link

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

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