我正在开发一个非常基本的服务来使用JSON提要并将其作为XML发布到另一个API。 (我道歉,我对其中大部分内容都是全新的。)
我已经构建了一个非常简单的WCF服务,并且我正在尝试测试一个基本的工作流程。
IRestServiceImpl.cs
:
[OperationContract]
[WebInvoke(Method = "POST",
ResponseFormat = WebMessageFormat.Xml,
RequestFormat = WebMessageFormat.Json,
BodyStyle = WebMessageBodyStyle.Bare,
UriTemplate = "auth")]
ResponseData Auth(RootObject rData);
RestServiceImpl.svc.cs
:
public ResponseData Auth(RootObject rData)
{
var response = new ResponseData
{
ID = rData.record.ID,
wbs1 = rData.record.wbs1,
wbs2 = rData.record.wbs2,
};
return response;
}
请求DTO:
[DataContract]
public class Record
{
public string ID { get; set; }
public string PARENT_RECORD_ID { get; set; }
public string PARENT_PAGE_ID { get; set; }
public string PARENT_ELEMENT_ID { get; set; }
public string CREATED_DATE { get; set; }
public string CREATED_BY { get; set; }
public string CREATED_LOCATION { get; set; }
public string CREATED_DEVICE_ID { get; set; }
public string MODIFIED_DATE { get; set; }
public string MODIFIED_BY { get; set; }
public string MODIFIED_LOCATION { get; set; }
public string MODIFIED_DEVICE_ID { get; set; }
public string SERVER_MODIFIED_DATE { get; set; }
public string development_name { get; set; }
public string development_street_address { get; set; }
public object time_of_signature { get; set; }
public object signature_project { get; set; }
public string inspectors_name { get; set; }
public string development_zip_code { get; set; }
public string development_state { get; set; }
public string wbs1 { get; set; }
public string wbs2 { get; set; }
public string development_city { get; set; }
public object unit_inspection { get; set; }
}
[DataContract]
public class RootObject
{
public Record record { get; set; }
public List<object> location { get; set; }
}
回应DTO:
[DataContract]
public class ResponseData
{
[DataMember]
public string ID { get; set; }
[DataMember]
public string wbs1 { get; set; }
[DataMember]
public string wbs2 { get; set; }
}
但是我收到了错误。
我理解对象引用错误是一个问题,但我真的试图对WCF代码本身进行故障排除。
当我尝试将此JSON Feed发送到服务时(我已经能够使用更简单的DTO模型点击而没有错误 - 但也没有数据返回):
[{"record":{"ID":"137","PARENT_RECORD_ID":"0","PARENT_PAGE_ID":"0","PARENT_ELEMENT_ID":"0","CREATED_DATE":"2014-06-16 15:03:16","CREATED_BY":"gnathanson@netzero.net","CREATED_LOCATION":"Server","CREATED_DEVICE_ID":"Server","MODIFIED_DATE":"2014-06-18 09:33:21","MODIFIED_BY":"gnathanson@netzero.net","MODIFIED_LOCATION":"Server","MODIFIED_DEVICE_ID":"Server","SERVER_MODIFIED_DATE":"2014-06-18 09:33:21","development_name":"My Test Dev","development_street_address":"123 Anystreet Rd","time_of_signature":null,"signature_project":null,"inspectors_name":"jon_castle","development_zip_code":"08001","development_state":"NJ","wbs1":"TEST.1234","wbs2":"ESTR.1","development_city":"Anytown","unit_inspection":null},"location":[]}]
我必须为空值设置特定的处理程序吗?或者我在这里做什么更加邪恶...... ??