WCF Создать универсальный c список свойств <T>в классе DataMember - PullRequest
0 голосов
/ 14 января 2020

Я создаю службу WCF, в которой два объекта OperationContract возвращают список записей в формате JSON

Пример кода:

 List<Response> GetCollegeList()
 List<Response> GetStudentList(int CollegeId)
public class Colleges
{
    public int CollegeId { get; set; }
    public string CollegeName { get; set; }        
}
public class Students
{
    public int StudentId { get; set; }
    public string StudentName { get; set; }

}
public class Response
{
    public string status_code { get; set; }
    public string responsemessage { get; set; }
    public List<College> data { get; set; }
}

Я хочу создать универсальный c Список для студентов и колледжей

public List<College> data { get; set; }

Как использовать generi c Список для обслуживания Данные ответа

public List<Response> GetCollegeList()
{
        List<Colleges> collegelist = new List<Colleges>();
        List<Response> response = new List<Response>();      
        dt =obj.GetCollegeList();

        if (dt.Rows.Count > 0)
        {
            foreach (DataRow row in dt.Rows)
            {
                collegelist.Add(
                   new Colleges
                   {
                       CollegeId = Convert.ToInt32(row["CollegeId"].ToString()),
                       CollegeName = row["CollegeName"].ToString() 
                   }
                 );
            }
        }

        response.Add(new Response { status_code = "success", responsemessage = "College List", data = collegelist });


    return response;
}

1 Ответ

0 голосов
/ 15 января 2020

Вы должны сделать Response в общем c:

public class Response<T>
{
    public string status_code { get; set; }
    public string responsemessage { get; set; }
    public T data { get; set; }
}

Затем вернуть Response<List<Colleges>> из GetCollegeList() следующим образом:

public Response<List<Colleges>> GetCollegeList()
{
    List<Colleges> collegelist = new List<Colleges>();

    dt =obj.GetCollegeList();

    if (dt.Rows.Count > 0)
    {
        foreach (DataRow row in dt.Rows)
        {
            collegelist.Add(
               new Colleges
               {
                   CollegeId = Convert.ToInt32(row["CollegeId"].ToString()),
                   CollegeName = row["CollegeName"].ToString() 
               }
             );
        }
    }
    Response<List<Colleges>> response = Response<List<Colleges>>()
    {
        status_code = "success", 
        responsemessage = "College List", 
        data = collegelist 
    };


    return response;
}

Вы можете использовать этот подход для Students и Response<List<Students>>.

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