C#相当于php关联数组
本文关键字:数组 关联 php 相当于 | 更新日期: 2023-09-27 18:27:58
我正在php中自定义一个购物车应用程序。在这个应用程序中,我必须将一些部分与另一个C#.net应用程序集成,所以我在php购物车中使用Web服务。在Web服务的一种方法中,一些值应该作为关联数组传递,如下所示:
$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 });
有人能给点建议吗???
我想你想要一个Dictionary<string, int>
。但我可能错了。当您调用web服务时,您应该看到生成的类被使用了什么。
若要调用web服务,请右键单击项目的"引用"文件夹。说"添加服务参考"。
把WSDL url放在那里,让它为您生成类。
尝试使用哈希表
http://msdn.microsoft.com/en-au/library/system.collections.hashtable%28v=vs.80%29.aspx
我的猜测是Dictionary不能与web服务调用一起工作的原因是Dictionation不可序列化。请改用SerializableDictionary;这里有一个实现:
http://www.dacris.com/blog/2010/07/31/c-serializable-dictionary-a-working-example/