【问题标题】:C# equivalent to php associative arrayC#相当于php关联数组
【发布时间】:2012-03-31 00:41:27
【问题描述】:

我正在用 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  });

谁能给点建议???

【问题讨论】:

  • 您是否真的尝试使用字典编写任何 C# 代码以发现它们不适用于 Web 服务?
  • 显然不允许我发布 lmgtfy 链接?无论如何,在 Google 或您最喜欢的搜索引擎上快速搜索关键字“C#”“webservice”“dictionary”“serializable”
  • @swasheck - 不会。这是告诉人们他们应该先搜索的粗鲁方式。
  • @swasheck 这是 Google 搜索“C# 关联数组”的首批结果之一。让我听你说递归!

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


【解决方案1】:

我想你想要一个Dictionary&lt;string, int&gt;。但我可能是错的。当您调用 Web 服务时,您应该会看到生成的类使用了什么。

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

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

【讨论】:

  • 现在他想将 Dictionary 传递给网络服务。
【解决方案2】:
【解决方案3】:

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

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

【讨论】:

  • 它死了,吉姆。 404.跨度>
猜你喜欢
  • 1970-01-01
  • 2012-09-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-27
  • 1970-01-01
  • 2012-02-05
相关资源
最近更新 更多