данные json, возвращенные из службы wcf, неполные

#c# #json #wcf

#c# #json #wcf

Вопрос:

Я возвращаю JSON из сетевого класса с 4 свойствами из моей службы WCF. Проблема заключается в том, что они отправляются в браузер (IE, Chrome, FF). он возвращает только одно из свойств из класса

Класс .NET:

 [DataContract]
    public class MASInspections
    {
        [DataMember]
        public int MaintID { get; set; }
        public string MHID { get; set; }
        public DateTime MaintDate { get; set; }
        public string pdfReport { get; set; }

    }
  

Интерфейс .NET:

 [OperationContract]
    [WebInvoke(Method = "GET",
        ResponseFormat = WebMessageFormat.Json,
        BodyStyle = WebMessageBodyStyle.Wrapped,
        UriTemplate = "GetInspectionByReach/{Reach}")]
    List<MASInspections> GetInspectionByReach(string Reach);
  

Метод .NET:

  public List<MASInspections> GetInspectionByReach(string Reach)
    {
        List<MASInspections> InspInfos = new List<MASInspections>();
        DataSet ds = DBCalls.GetInspectionByReach(Reach);
        DataTable dt = ds.Tables[0];
        DataRowCollection drc = dt.Rows;
        for (int i = 0; i < drc.Count; i  )
        {
            object[] values = drc[i].ItemArray;
            MASInspections InspInfo = new MASInspections();
            InspInfo.MaintID = Convert.ToInt32(values[0]);
            InspInfo.MHID = Convert.ToString(values[1]);
            InspInfo.MaintDate = Convert.ToDateTime(values[5]);
            InspInfo.pdfReport = Convert.ToString(values[6]);
            InspInfos.Add(InspInfo);
        }

        return InspInfos;//this inlcudes all 4 properties
    }
  

когда json отправляется в браузер, там есть только MaintID:

     {"GetInspectionByReachResult":[{"MaintID":133},{"MaintID":178}]}
  

Есть идеи, почему это может быть?

Спасибо

Ответ №1:

это ваша проблема:

 [DataContract]
    public class MASInspections
    {
        [DataMember]
        public int MaintID { get; set; }
        public string MHID { get; set; }
        public DateTime MaintDate { get; set; }
        public string pdfReport { get; set; }

    }
  

вам нужно:

 [DataContract]
    public class MASInspections
    {
        [DataMember]
        public int MaintID { get; set; }
        [DataMember]
        public string MHID { get; set; }
        [DataMember]
        public DateTime MaintDate { get; set; }
        [DataMember]
        public string pdfReport { get; set; }

    }