擬似コードは、ページネーションと
ほとんどのAPIは、項目の合計数を持つことになります。反復ごとに最大項目を設定し、そのように追跡したり、APIの処理方法に応じてnull next_objectを確認したりすることができます。
List<ApiObject> GetObjects() {
const int ITERATION_COUNT = 100;
int objectsCount = GetAPICount();
var ApiObjects = new List<ApiObject>();
for (int i = 0; i < objectsCount; i+= ITERATION_COUNT) {
// get the next 100
var apiObjects = callToAPI(i, ITERATION_COUNT); // pass the current offset, request the max per call
ApiObjects.AddRange(apiObjects);
} // this loop will stop after you've reached objectsCount, so you should have all
return ApiObjects;
}
// alternatively:
List<ApiObject> GetObjects() {
var nextObject = null;
var ApiObjects = new List<ApiObject>();
// get the first batch
var apiObjects = callToAPI(null);
ApiObjects.AddRange(apiObjects);
nextObject = callResponse.nextObject;
// and continue to loop until there's none left
while (nextObject != null) {
var apiObjects = callToAPI(null);
ApiObjects.AddRange(apiObjects);
nextObject = callResponse.nextObject;
}
return apiObjects;
}
2つの通常のWebサービス・アプローチ(これはコードの作業だけで一般的なアプローチを実証するものではありませんように、詳細の多くが付いているが、取り残さ)ごとに、とにかく基本的な考え方です。
なぜクラスのプロパティを使用しないでください。あなたがすでにすべての変数を持っていれば、どういう問題があるのか分かりません。 – Arjang
はい、同じ方法をリフレッシュする方法はありますか? – Bokbob
使用したコードをコピーできますか? @Bokbob – MoustafaS