我对编码.NET真的很陌生。我一直在努力创建一个休息网络服务。
以下是代码:
namespace RestService
{
[ServiceContract]
public class RestServiceImpl
{
[OperationContract]
[WebInvoke(Method = "GET", UriTemplate = "foo")]
List<Data> test()
{
OrderList ol = new OrderList();
List<Data> comments = new List<Data>();
comments.Add(new Data { Name = "sdf" });
comments.Add(new Data { Name = "sdf" });
ol.Order = comments;
return ol.Order;
}
[CollectionDataContract]
public class OrderList: List<Data>
{
[DataMember]
public List<Data> Order{ get; set; }
}
[DataContract(Name = "Data")]
public class Data
{
[DataMember]
public string Name;
}
}
}
这是我得到的输出
<ArrayOfData>
<Data>
<Name>sdf</Name>
</Data>
<Data>
<Name>sdf</Name>
</Data>
</ArrayOfData>
我期待得到的是
<OrderList>
<Data>
<Name>sdf</Name>
</Data>
<Data>
<Name>sdf</Name>
</Data>
</OrderList>
希望有人能告诉我我失踪了什么。
编辑: 如果我更改代码,那么我将返回订单列表obj而不仅仅是订单 facepalm
OrderList test()
{
OrderList ol = new OrderList();
List<Data> comments = new List<Data>();
comments.Add(new Data { Name = "sdf" });
comments.Add(new Data { Name = "sdf" });
ol.Order = comments;
return ol;
}
[CollectionDataContract (Name = "OrderList")]
public class OrderList: List<Data>
{
[DataMember]
public List<Data> Order{ get; set; }
}
它仍然没有给我我所期待的东西 它只是提供以下内容:
<OrderList/>
并且列表中没有元素,帮助仍然是适用的
答案 0 :(得分:2)
尝试使用Name property
。
[CollectionDataContract(Name="OrderList")]
public class OrderList: List<Data>
答案 1 :(得分:0)
设置Name和ItemName属性。请参阅MSDN。