C#相当于php关联数组

时间:2012-03-14 14:31:58

标签: c# php web-services associative-array

我在php中自定义购物车应用程序。在这个应用程序中,我必须将一些部分与另一个C#.net应用程序集成,所以我在php shoppnig购物车中使用webservice。在其中一个webservice方法中,某些值应作为关联数组传递。

   $proxy = new SoapClient('www.mywebservice.com?wsdl');
   $associative_array= array(
     'abc'=> 1,'def'=>0,'ghi'=>1,'jkl'=>0
    );

    $proxy->call($sessionId, 'methodname', array('somevalue', $associative_array));
在php中它的工作正常...... 但问题是我在使用C#.net,我怎么能用C#.net传递关联数组? 我是一个php程序员,我认为C#.net中没有关联数组,有人说C#Dictionary可以代替那个, 但这不适用于webservice调用

C#代码是

   Dictionary<string,string> map=new Dictionary<string,string>();
               map.Add("abc","1");
               map.Add("def","0");

               object st = mgs.call(sessionid, "methodname", new object[] { "somevalue",map  });

任何人都可以给出一些建议???

3 个答案:

答案 0 :(得分:2)

我想你想要Dictionary<string, int>。但我可能是错的。您应该看到在调用Web服务时使用生成的类的内容。

要调用Web服务,请右键单击项目的References文件夹。说添加服务参考。

将WSDL url放在那里,让它为你生成类。

答案 1 :(得分:0)

答案 2 :(得分:-1)

我的猜测是,Dictionary不使用Web服务调用的原因是Dictionary不可序列化。尝试使用SerializableDictionary;这里有一个实现:

http://www.dacris.com/blog/2010/07/31/c-serializable-dictionary-a-working-example/