我有一个REST Web服务,它返回一个包含更多结构数组的结构。这个返回结构如下所示:
[DataContract]
public class Response {
private ResponseRecord[] m_Record;
[DataMember]
public int TotalRecords { get; set; }
[DataMember]
public ResponseRecord[] Record {
get { return m_Record; }
set { m_Record = value; }
}
}
ResponseRecord类是这样的:
[DataContract(Name="Record")]
public class ResponseRecord {
[DataMember(Order = 0)]
public string RecordID { get; set; }
/* Many more objects */
}
我的网络服务返回这样的XML:
<Response>
<TotalRecords>1</TotalRecords>
<Record>
<ResponseRecord>
<RecordID>1</RecordID>
... Many more objects ...
</ResponseRecord>
</Record>
</Response>
我想要做的是摆脱“ResponseRecord”层级,因为它没有添加任何新信息。此Web服务也运行SOAP和XML,(Name =“Record”)属性可以解决问题。但是,出于某些原因,REST不是这样。为什么呢?
答案 0 :(得分:1)
首先,我建议您将Record
属性更改为Records
,因为记录确实如此。
此外,如果您删除ResponseRecord
,则无法将每个ResponseRecord
实例的属性组合在一起。所以这是不可能的。
答案 1 :(得分:0)
结果我的数组设置不正确:
[DataContract]
public class Response {
private ResponseRecord[] m_Record;
[DataMember]
public int TotalRecords { get; set; }
[System.Xml.Serialization.XmlElementAttribute("Record")] // <-- HERE
public ResponseRecord[] Record {
get { return m_Record; }
set { m_Record = value; }
}
}
这删除了ResponseRecord级别,这是我想要的。