8

我正在尝试制作一个小型应用程序,可以通过它的 ISBN 在亚马逊搜索一本书。我是亚马逊网络服务的新手。

我正在关注以下链接:

http://flyingpies.wordpress.com/2009/08/01/17/

http://flyingpies.wordpress.com/2009/08/13/signing-amazon-product-advertising-api-cwcf-part-2/

使用新的亚马逊服务搜索亚马逊示例

我的代码是:

BasicHttpBinding binding = new BasicHttpBinding(BasicHttpSecurityMode.Transport);
binding.MaxReceivedMessageSize = int.MaxValue;

AWSECommerceServicePortTypeClient amazonClient = new AWSECommerceServicePortTypeClient(
    binding, new EndpointAddress("https://webservices.amazon.com/onca/soap?Service=AWSECommerceService"));

amazonClient.ChannelFactory.Endpoint.Behaviors.Add(new AmazonSigningEndpointBehavior(AccessKeyId, SecretAccessKey));

ItemLookup lookup = new ItemLookup();
ItemLookupRequest request = new ItemLookupRequest();

request.IdType = ItemLookupRequestIdType.ISBN;
request.ItemId = new[] {"9780297870470"};
request.ResponseGroup = new[] { "OfferSummary" };
request.SearchIndex = "All";
request.IdTypeSpecified = true;

lookup.Request = new ItemLookupRequest[] { request };
lookup.AWSAccessKeyId = AccessKeyId;
lookup.AssociateTag = "wwwyaodaromane-90";
var response = amazonClient.ItemLookup(lookup);

当我尝试发送请求时,我得到了这个异常

序列化消息 ItemSearchRequest1 的正文时出错:'无法生成临时类(结果 = 1)。

错误 CS0030:无法将类型“Simple.Amazon.ECS.ImageSet[]”转换为“Simple.Amazon.ECS.ImageSet”

内部异常是:

{“无法生成临时类 (result=1)。\r\n错误 CS0030: 无法将类型 'Simple.Amazon.ECS.ImageSet[]' 转换为 'Simple.Amazon.ECS.ImageSet'\r\n错误 CS0029:无法将类型 'Simple.Amazon.ECS.ImageSet' 隐式转换为 'Simple.Amazon.ECS.ImageSet[]'\r\n"}

我不明白为什么我会得到这个。我做错了什么?

4

1 回答 1

14

这通常是 WCF 代理生成中的错误。有关一些详细信息和解决方法,请参见此处

取自评论链接

以下是自 2012 年 1 月 31 日起在 Visual Studio for .Net 客户端中解决此问题的步骤:

1) 单击解决方案资源管理器中包含亚马逊服务参考的项目的“显示所有文件”按钮。

2) 展开引用并在编辑器中打开 AWSECommerceService.wsdl 文件

3) 在第 584 行将“maxOccurs”更改为“1”。

4) 保存 AWSECommerceService.wsdl 文件

5)右键单击Reference.svcmap,然后单击“运行自定义工具”

6) 展开 Reference.svcmap 并打开 Reference.cs 或 Reference.vb

7) 使用窗口顶部的下拉菜单导航到 AmazonAPI.your namespace.Item。

8) 导航到 ImageSets 属性并确认其声明如下所示:

public ImageSet[] ImageSets {

不喜欢这样

public ImageSet[][] ImageSets {

9) 重建你的项目

于 2013-09-09T13:30:07.003 回答