C#相当于php关联数组
我在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 map=new Dictionary(); map.Add("abc","1"); map.Add("def","0"); object st = mgs.call(sessionid, "methodname", new object[] { "somevalue",map });
任何人都可以给一些建议???
我想你想要一个Dictionary
。 但我可能是错的。 您应该看到在调用Web服务时使用生成的类的内容。
要调用Web服务,请右键单击项目的References文件夹。 说添加服务参考。
将WSDL URL放在那里,让它为您生成类。
尝试使用Hashtable
http://msdn.microsoft.com/en-au/library/system.collections.hashtable%28v=vs.80%29.aspx
我的猜测是,Dictionary不使用Web服务调用的原因是Dictionary不可序列化。 尝试使用SerializableDictionary; 这里有一个实现:
http://www.dacris.com/blog/2010/07/31/c-serializable-dictionary-a-working-example/