VB.NET的等价物是什么?
$filters = array('sku' => array('like'=>'zol%'));
$products = $proxy->call($sessionId, 'product.list', array($filters));
因为我试图通过这样的方式从Magento检索特定产品:
Dim products = magentoV1_servico.call(magentoV1_sessao, "product.list", filters)
我得到的是一条错误消息,说“#34;创建XML文件时出错"。我猜测我的过滤器是错误的,因为我不确定如何正确发送这些数组参数。我正在使用Magento 1.9,SOAP API v1。
答案 0 :(得分:0)
我无法访问WSDL,但从外观来看,.Net签名应该是这样的:
Dim filters As New List(Of String, List(Of KeyValuePair(Of String, String)))()
也许应该使用Dictionary而不是List,但是从examples on their page看起来它看起来像重复一样。检查WSDL并使用这些技术,如果这还没有发现。
您可以像这样创建特定过滤器的翻译:
Dim filter1 As New List(Of KeyValuePair(of String, String))
filter1.Add(New KeyValuePair("like", "zol%"))
filters.Add("sku", filter1)
答案 1 :(得分:0)
在Magento的V1中尝试使用很多不同的对象后,我遇到了同样的问题。始终是相同的“创建XML文件时出错”的问题。
因为我们需要处理应该序列化的复杂对象,所以我什至尝试使用
SerializableDictionary<TKey, TValue> Class
,但是没有运气。在这种情况下,问题出在编译期间,“ Microsoft.WindowsServerSolutions.Administration.ObjectModel.dll已损坏”。
我已经绕过了使用Magento SOAP V2的问题,该问题实际上不需要我需要的关联数组。
另一种可能的解决方案是像this one或this one这样的指南中所述为您自己提供SerializibleDictonary,但我没有时间进行测试。