0

http://www.dscredstorm.com/getisbninfo.aspx

我正在尝试使用亚马逊的 api。我下载了他们的示例代码,这是一个 C# windows 窗体应用程序,但我认为它也应该适用于 C# 网站,对吗?

SignedRequestHelper.cs 是一个似乎具有一些我需要发送签名请求的功能的文件。它的命名空间是 AmazonProductAdvtApi。我将文件放在 App_Code/Csharp 中,并添加了“使用 AmazonProductAdvtApi;” 到我的页面。

但我收到此错误:“AmazonProductAdvtApi.SignedRequestHelper”由于其保护级别而无法访问

为什么?

更多信息:SignedRequestHelper helper = new SignedRequestHelper(accessKeyId, secretKey, destination);

见:http ://www.dscredstorm.com/getisbninfo.aspx

这是 SignedRequestHelper.cs 的类声明:

using System;
using System.Collections.Generic;
using System.Text;
using System.Web;
using System.Security.Cryptography;

namespace AmazonProductAdvtApi
{
    class SignedRequestHelper
    ...
    ... some private consts and vars...

    public SignedRequestHelper(string awsAccessKeyId, string awsSecretKey, string destination)
    {
        this.endPoint = destination.ToLower();
        this.akid = awsAccessKeyId;
        this.secret = Encoding.UTF8.GetBytes(awsSecretKey);
        this.signer = new HMACSHA256(this.secret);
    }
4

3 回答 3

1

该课程未标记为公开;因此,它无法从其他命名空间访问。

很可能使用它的其他 Amazon 类也在AmazonProductAdvtApi命名空间中,因此它们没有问题(internal默认情况下,没有显式可见性的类会出现)。

如果要使用该类,请将其声明更改为public class SignedRequestHelper. 请注意,该类可能不适合公共使用,即可能缺少您通常在公共 API 中期望的某些类型的错误检查。

于 2010-01-08T20:14:42.533 回答
1

Perhaps this is not the public interface they want you to use. Maybe there is a public class that wraps this class.

于 2010-01-08T20:19:48.717 回答
0

“由于其保护级别而无法访问”意味着您试图引用其预期范围之外的项目,即从另一个不相关的类创建私有类的实例。using 语句似乎不是这里的问题。

于 2010-01-08T20:07:13.453 回答