Wie kann ich IEnumerable erweitern, um meine Sammlung von einem Webdienst zu laden?C#

Ein Treffpunkt für C#-Programmierer
Anonymous
 Wie kann ich IEnumerable erweitern, um meine Sammlung von einem Webdienst zu laden?

Post by Anonymous »

Ich habe versucht herauszufinden, wie ich Enumerable/ implementieren könnteIEnumerator um Folgendes zu erfüllen:
  • 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.
Ich habe einige Schwierigkeiten herauszufinden, wie ich dafür sorgen kann, dass ein IEnumerable die ganze schwere Arbeit von mir übernimmt, und die MSDN IEnumerable-Dokumentation hat mir nicht geholfen.

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.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post