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);
}
答案 0 :(得分:1)
班级没有标记为公开;因此,它无法访问其他名称空间。
使用它的其他Amazon类很可能也在AmazonProductAdvtApi
命名空间中,因此它们没有问题(默认情况下,没有显式可见性的类获得internal
。
如果要使用该类,请将其声明更改为public class SignedRequestHelper
。请注意,该类可能不会用于公共消费,即可能缺少您在公共API中通常期望的某些类型的错误检查。
答案 1 :(得分:1)
也许这不是他们希望您使用的公共界面。也许有一个公共类包装了这个类。
答案 2 :(得分:0)
“由于其保护级别而无法访问”意味着您正在尝试引用其预期范围之外的项目,即从另一个不相关的类创建私有类的实例。使用声明似乎不是问题。