0

データベースからデータを取得してクライアントに返す WebMethod を作成する必要があります。

ここで、データ量が膨大になると仮定して、データを部分的に取得して返したいと思います。

Webmethod で yield return を使用する方法はありますか?

私が知っているように、WebMethods でジェネリック型を返す方法はありませんが、非ジェネリックの IEnumerable も使用できませんでした。

どうすればそれを達成できますか?

4

1 に答える 1

2

いいえ、WebMethodからリターンを得ることができません。ただし、メソッド呼び出しに2つのパラメーターを追加して、ページングされた結果を許可することができます。

public string[] GetResults(string someQuery)
{
    var results = new List<string>();

    // Fill Results

    return results.ToArray();
}

になる:

public string[] GetResults(string someQuery, int pageNum, int pageSize)
{
    var results = new List<string>();

    // Fill Results

    return results.Skip(pageNum * pageSize).Take(pageSize).ToArray();
}
于 2010-09-08T17:33:12.910 に答える