我有一个使用WebInvoke的Web服务,我想更改正在返回的标记。
当前服务如下所示:
[OperationContract]
[WebInvoke(BodyStyle = WebMessageBodyStyle.Bare,
Method = "GET",
RequestFormat = WebMessageFormat.Xml,
ResponseFormat = WebMessageFormat.Xml,
UriTemplate = "/")]
List<DataObject> getCurrentData();
它返回如下所示的XML:
<ArrayOfDataObject xmlns="..."> <DataObject> ... </DataObject> ... </ArrayOfDataObject>
使用WCF,如何将发出的标记更改为&lt; ArrayOfDataObject&gt;和&lt; DataObject&gt;更通用的东西?
答案 0 :(得分:2)
感谢Maess让我走上正轨。这就是我最终的结果:
[CollectionDataContract(ItemName="element", Name = "elementCollection")]
public class DataResponse<T> : List<T>
{
public DataResponse() : base()
{
}
public DataResponse(List<T> list) : base()
{
this.AddRange(list);
}
}
答案 1 :(得分:1)
您可以在DataObject
本身使用序列化提示。这些将告知序列化程序如何呈现对象及其属性。
[XmlRoot("YourNewNameHere")]
public class DataObject
{
}