2012-07-20 35 views
0

繼續發展我在以前的文章中提到的API,我所遇到以下情況:不知道如何實現IEnumerable這個類

我需要能夠訪問返回的響應列表通過 web服務。

問題是我不確定如何在這個類上實現IEnumerable。

... 
public class ResponseBodyResponse 
{ 
    public ResponseListResponse ResponseList { get; set; } 

    public class ResponseListResponse 
    { 
     public ResponseInfoResponse ResponseInfo { get; set; } 

     public class ResponseInfoResponse 
     { 
      public string RequestId { get; set; } 
      public string RequestType { get; set; } 
      public DateTime RequestDate { get; set; } 
      public string RequestStatus { get; set; } 
      public string Error { get; set; } 
      public string Memo { get; set; } 
     } 

     public ResponseListResponse() 
     { 
      ResponseInfo = new ResponseInfoResponse(); 
     } 
    } 

    public ResponseBodyResponse() 
    { 
     ResponseList = new ResponseListResponse(); 
    } 
... 

之前有人問我的確得到了XSD文件的副本,但是產生使用XSD.EXE類導致文件的荒謬與混雜造成超過1000曖昧命名錯誤矛盾的類名。

+1

你應該考慮創建一個命名空間爲它 – 2012-07-20 13:26:30

+0

我知道在這裏沒有顯示,但是每個API都被分解到它自己的命名空間中:報告,訂單,庫存等。在每個API中有一系列類,用於說明以請求/響應方式獲取訂單狀態。即GetReportStatusRequest和GetReportStatusResponse。 – 2012-07-20 14:10:57

回答

0

儘管列表和數組(以及其他選擇)都實現了它,但實際上應該從Web服務而不是實現IEnumerable<T>返回列表或數組等具體集合。它不是IEnumerable<T>,這是序列化的關鍵。

另外,嵌套的類結構會讓你的代碼很難被使用。

因爲我不知道你上面的代碼你的意圖,這裏是如果你所有的類都以「反應」開頭的例子

public class Road 
{ 
    public Car[] Cars { get; set; } // this can be also `List<Car>` 
} 
public class Car 
{ 
    // stuff 
} 
+0

你能提供一個例子嗎? – 2012-07-20 13:26:04

+0

我相信值得注意的是,無論如何這個集合實現'IEnumerable ',或不? – sll 2012-07-20 13:26:12

+0

上一篇文章中提出了嵌套類結構。我對OOP相當陌生,所以我不提這些專業知識:)如果你對班級結構有更好的建議,我會全力以赴。同時我會試一試你的建議。 – 2012-07-20 13:31:23

相關問題