我正在使用asp.net web api和eventhough我个人喜欢使用HttpResponseMessage
和Request.CreateResponse
在json中处理我的数据我可以让客户决定他们喜欢什么。
然而,当查看xml数据时,我看到节点名称很糟糕。我想知道除了更改文件名之外可以更改吗?我试过xmlRoot,但没有做任何事。
例如我像这样做回报
return Request.CreateResponse<ResponseResult<List<PersonSearchDto>>>(HttpStatusCode.OK, p);
我得到一个名为this this
的根节点ResponseResultOfArrayOfPersonSearchK0AojvId
如果我可以重命名为Persons
答案 0 :(得分:0)
在Global.asax.cs
:
GlobalConfiguration.Configuration.Formatters.XmlDataContractSerializer = true;
然后按this MSDN article中的说明使用[DataMember]
和[DataContract]
装饰您的类和属性:
namespace MyTypes
{
[DataContract]
public class PurchaseOrder
{
private int poId_value;
// Apply the DataMemberAttribute to the property.
[DataMember]
public int PurchaseOrderId
{
get { return poId_value; }
set { poId_value = value; }
}
}
}
答案 1 :(得分:0)
解决问题的正确方法是使用CollectionDataContractAttribute:
所以在你的情况下,你可以有这样的类型:
[CollectionDataContract(Name = "Persons")]
public class PersonResults : List<PersonSearchDto>
{
}