C#'使用'我这样做吗? (由于防护等级无法访问)

时间:2010-01-08 19:52:39

标签: c# asp.net amazon-web-services using

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);
    }

3 个答案:

答案 0 :(得分:1)

班级没有标记为公开;因此,它无法访问其他名称空间。

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

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

答案 1 :(得分:1)

也许这不是他们希望您使用的公共界面。也许有一个公共类包装了这个类。

答案 2 :(得分:0)

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