2017-01-18 5 views
-2

Ниже приведен весь мой исходный код.Непоследовательная доступность: тип возврата менее доступен, чем метод в службе RESTful

Может кто-нибудь предложить, пожалуйста, как решить следующую ошибку:

Error 2 Inconsistent accessibility: return type 'ConsumingApp.Dept' is less accessible than method 'ConsumingApp.Form1.CreateDept(ConsumingApp.Dept)'

using System; 
    using System.Collections.Generic; 
    using System.ComponentModel; 
    using System.Data; 
    using System.Drawing; 
    using System.Linq; 
    using System.Net; 
    using System.Text; 
    using System.Threading.Tasks; 
    using System.Windows.Forms; 

using System.Runtime.Serialization.Json; 
using System.IO; 
namespace ConsumingApp 
{ 
public partial class Form1 : Form 
{ 
    public Form1() 
    { 
     InitializeComponent(); 
    } 

    private void Form1_Load(object sender, EventArgs e) 
    { 

     var client = new WebClient(); 
     client.Headers.Add("Accept", "application/json"); 

     var result = client.DownloadString("http://localhost:20642/ComRESTfulService.svc/Depts"); 
     var serializer = new DataContractJsonSerializer(typeof(Dept[])); 
     Dept[] resultObject; 
     using (var stream = new MemoryStream(Encoding.ASCII.GetBytes(result))) 
     { 
      resultObject = (Dept[])serializer.ReadObject(stream); 
     } 
     DataTable dt = new DataTable(); 
     dt.Columns.Add("DeptId", typeof(int)); 
     dt.Columns.Add("DeptName", typeof(string)); 

     foreach (var item in resultObject) 
     { 
      int DeptId = item.DeptId; 
      string DeptName = item.DeptName; 
      DataRow row = dt.NewRow(); 
      row[0] = DeptId; 
      row[1] = DeptName; 
      dt.Rows.Add(row); 
     } 

     dataGridView1.DataSource = dt; 

    } 

    public Dept CreateDept(Dept dept) 
    { 
     return SendDataToServer("http://localhost:63588/PunService.svc/Depts", "POST", dept); 
    } 
    private T SendDataToServer<T>(string endpoint, string method, T dept) 
    { 
     var request = (HttpWebRequest)HttpWebRequest.Create(endpoint); 
     request.Accept = "application/json"; 
     request.ContentType = "application/json"; 
     request.Method = method; 
     var serializer = new DataContractJsonSerializer(typeof(T)); 
     var requestStream = request.GetRequestStream(); 
     serializer.WriteObject(requestStream, dept); 
     requestStream.Close(); 
     var response = request.GetResponse(); 
     if (response.ContentLength == 0) 
     { 
      response.Close(); 
      return default(T); 
     } 
     var responseStream = response.GetResponseStream(); 
     var responseObject = (T)serializer.ReadObject(responseStream); 
     responseStream.Close(); 
     return responseObject; 
    } 

    private void button1_Click(object sender, EventArgs e) 
    { 
     Dept dept = new Dept 
     { 
      DeptId = Convert.ToInt32(textBox1.Text), 
      DeptName = textBox2.Text 

     }; 
     CreateDept(dept); 

    } 

    } 
}` 
+0

Попробуйте изменить модификатор доступа к общему –

+0

Вам нужно показать класс 'Dept', но ошибка сообщает вам все, возможно, обмануть ... http://stackoverflow.com/questions/6229504/inconsistent-accessibility-parameter- type-is-less-access-than-method? rq = 1 – TheLethalCoder

+1

Возможная дубликация [Непоследовательность Доступность: тип параметра менее доступен, чем метод] (http://stackoverflow.com/questions/6229504/inconsistent-accessibility-parameter- типа является менее доступным, чем метод) –

ответ

0

Ваш Dept класс не является публичной. Вы не можете вернуть непубличный тип из общедоступного метода.

Если вы не указали доступность для не-вложенного класса, то по умолчанию используется внутренняя.

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

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