2015-05-14 2 views
-1

Я взял простой интерфейсПротиворечивые Доступность

public interface IBinaryHelper 
{ 
    toBinary ConvertToBinary(string pathBinary); 
} 

Я пытаюсь доступ в классе ниже его

public class ApiHelper : IBinaryHelper 
{ 
    private readonly RestClient _client; 

    public toBinary ConvertToBinary(string pathBinary) 
    { 
     toBinary binary = null; 
     var request = new RestRequest("SampleAPI/ConvertToBinary/{pathBinary}", Method.GET) { RequestFormat = DataFormat.Json }; 
     request.AddParameter("pathBinary", pathBinary, ParameterType.UrlSegment); 
     var response = _client.Execute<toBinary>(request); 
     binary = response.Data; 
     return binary; 
    } 
} 

Теперь, когда построите, это ошибка я получаю сообщение об ошибке Inconsisten доступности :

ApiHelper.toBinary Возвращение типа является менее доступным, чем метод ApiHelper.ApiHelper.ConvertToBinary(string) на ConvertToBinary метод как в интерфейсе, так и в классе

+3

Жалоба на то, что тип 'toBinary' не является общедоступным. Вы не можете вернуть частный или внутренний тип из общедоступного метода (очевидно, если вы думаете об этом) – Blorgbeard

+0

Да, это получилось! Благодаря!! –

+0

Возможный дубликат [Непоследовательная ошибка доступности со следующим кодом C#. Почему?] (Http://stackoverflow.com/questions/524761/inconsistent-accessibility-error-with-the-following-c-sharp-code-why) –

ответ

2

Вы возвращаете объект типа toBinary из общедоступного метода в открытый класс.

Класс toBinary должен быть доступен всем возможным абонентам метода ApiHelper.ConvertToBinary - следовательно, он также должен быть общедоступным.

1

Как говорит ошибка, несогласованность не вызывая этот метод, но, по-видимому toBinary класс, который не public. Вы не можете предложить метод как public, если вы не можете получить доступ к типу возврата публично.

Видимо ваш toBinaryclass/interface/struct/... это internal, private, внутренний класс, ... Вы должны сделать эту общественность, а также.

Еще один намек: имена классов начинаются вообще с символа верхнего регистра. Так должно быть ToBinary не toBinary.

Смежные вопросы