3

我对 .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>

希望有人能告诉我我错过了什么。

编辑:如果我更改代码,所以我返回 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/>

并且列表中没有任何元素,仍然有帮助

4

2 回答 2

2

尝试使用Name property.

   [CollectionDataContract(Name="OrderList")]
   public class OrderList: List<Data>
于 2012-06-26T13:13:55.287 回答
0

设置 Name 和 ItemName 属性。请参阅MSDN

于 2012-06-26T13:13:39.813 回答