0

以前の投稿で言及した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を超えるあいまいな名前付けエラーが発生しました。

4

1 に答える 1

0

IEnumerable<T>リストや配列(およびその他のコレクション)が実装している場合でも、実際には、実装ではなく、Webサービスからリストや配列などの具体的なコレクションを返す必要があります。それ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 に答える