3

私は.NETのコーディングに本当に慣れていません。私は残りのWebサービスを作成しようとしています。

コードは次のとおりです。

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>

誰かが私に欠けているものを教えてくれることを願っています。

編集: コードを変更すると、注文facepalmの代わりに orderlist obj が返されます

  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 に答える