C # 'используя' Я делаю это правильно? (Недоступен из-за уровня защиты) - PullRequest
0 голосов
/ 08 января 2010

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

Я пытаюсь использовать API Amazon. Я скачал их пример кода, который является приложением формы Windows на C #, но я решил, что он должен работать и на веб-сайте 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 ]

1 голос
/ 08 января 2010

Класс не помечен как общедоступный; следовательно, он недоступен из других пространств имен.

Скорее всего, другие классы Amazon, которые его используют, также находятся в пространстве имен AmazonProductAdvtApi, поэтому у них нет проблем (класс без явной видимости получает internal по умолчанию).

Если вы хотите использовать этот класс, измените его объявление на public class SignedRequestHelper. Просто имейте в виду, что этот класс не может быть предназначен для общего пользования, т. Е. Может отсутствовать определенный тип проверки ошибок, который вы обычно ожидаете в публичном API.

1 голос
/ 08 января 2010

Возможно, это не публичный интерфейс, который вы хотите использовать. Может быть, есть открытый класс, который обертывает этот класс.

0 голосов
/ 08 января 2010

«недоступен из-за уровня защиты» означает, что вы пытаетесь сослаться на элемент вне его предполагаемой области, то есть создаете экземпляр частного класса из другого несвязанного класса. утверждение использования здесь не является проблемой.

...