- Ich rufe einen Webdienst auf, um eine Abfrage zu erstellen
- Ich frage den Webdienst ab, um herauszufinden, wann er bereit ist, Ergebnisse zurückzugeben
- Sobald der Webdienst bereit ist, Ergebnisse zurückzugeben, rufe ich eine Methode auf (z. B. GetNext(n)), um n Elemente daraus zu erhalten
- Sobald GetNext(n) weniger als n Ergebnisse zurückgibt, habe ich alle meine Artikel abgerufen.
Hier ist eine vereinfachte Version meines Codes:
public class MyEnumerable : IEnumerable
{
private MyWebService _service;
private int _queryID;
public MyEnumerable(MyWebService service, int queryID)
{
_service = service;
_queryID = queryID;
}
IEnumerator IEnumerable.GetEnumerator()
{
return new MyEnumerator(_service, _query);
}
}
public class MyEnumerator : IEnumerator
{
private List _items; //want to load my items from WebService into this
private MyWebService _service;
private int _queryID;
private int _index = 0;
private MyEnumerator(MyWebService service, int queryID)
{
_service = service;
_queryID = queryID;
}
public object Current
{
//what goes here?
}
public bool MoveNext()
{
//what goes here? would I call the web service here?
}
public void Reset()
{
_index = 0;
}
}
Hoffentlich macht das etwas mehr Sinn. Nehmen wir an, ich kann in meinem Webservice eine Methode namens GetNext(n) aufrufen.