C # эквивалентно ассоциативному массиву php

Я настраиваю приложение корзины покупок на php. в этом приложении мне нужно интегрировать часть с другим приложением C # .net, поэтому я использую webservice в php shoppnig cart. В одном из методов 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 #, но это не работает с вызовом 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> . Но я могу ошибаться. Вы должны увидеть, что сгенерированный класс используется при вызове веб-службы.

Чтобы вызвать веб-службу, щелкните правой кнопкой мыши папку «Ссылки» вашего проекта. Скажите «Добавить ссылку на службу».

Поместите там URL-адрес WSDL и позвольте ему сгенерировать классы для вас.

Попробуйте использовать Hashtable

http://msdn.microsoft.com/en-au/library/system.collections.hashtable%28v=vs.80%29.aspx

Я предполагаю, что причина, по которой Словарь не работает с вызовом веб-службы, заключается в том, что Словарь не является сериализуемым. Вместо этого попробуйте использовать SerializableDictionary; здесь есть реализация:

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