0

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

我需要能够访问网络服务返回的响应列表。

问题是我不确定如何在这个类上实现 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 个模棱两可的命名错误。

4

1 回答 1

0

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

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

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

public class Road 
{
    public Car[] Cars { get; set; } // this can be also `List<Car>`
}
public class Car
{
    // stuff
}
于 2012-07-20T13:24:32.643 回答