不知道如何在这个类上实现IEnumerable

时间:2012-07-20 13:22:39

标签: c# api

继续开发我在之前的帖子中提到的API,我遇到了以下情况:

  

我需要能够访问由...返回的响应列表   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 个答案:

答案 0 :(得分:0)

您确实应该从Web服务而不是实现IEnumerable<T>返回一个具体的集合,例如列表或数组,即使列表和数组(以及其他选择)确实实现了它。它不是IEnumerable<T>序列化的关键。

除此之外,嵌套的类结构使您的代码难以使用。

由于我不确定您对上述代码的意图,因此这是一个示例

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