Hallo!
Ich möchte folgendes realsieren:
Es gibt ein WebService deren Funktion einen komplexen Datentyp als Ergebniss liefert, was auch noch ein Array ist, z.B.:
[WebMethod]
public Person[] getPersonArray()
{
....
}
class Person
{
public string name;
public string vorname;
}
Nun, möchte ich den Rückgabewert in einer Tabelle darstellen. Womit/Wie kan man es am besten realisieren?
Hallo f.ritz!
Wenn Du das Objekt Person durch eine XML-Serialisierung schicken kannst, dann schafft es auch der WebService diese Daten zu übertragen. Ein Array kann ein WebService schon von Grund auf.
Dazu solltest Du Dir am besten ein XML-Schema anlegen. Dann kann man mittels dieses Schemas das Objekt Person durch XML-Serialisierung, indem man dafür das Attribut [XmlSerializable] und für die jeweiligen Felder dann entsprechende [XmlElement] "Überschriften" gibt auch zur Laufzeit solche Objekte transferieren.
Das war jetzt zusammengepackt in einem Satz, wo es vielleicht besser gewesen wäre 20 Sätze zu schreiben, aber Stichwort ist hier XML-Serialisierung, und das findest Du sicherlich in der MSDN oder im SDK oder auch hier im Forum wieder.
Ciao
Norman-Timo
A: “Wie ist denn das Wetter bei euch?”
B: “Caps Lock.”
A: “Hä?”
B: “Na ja, Shift ohne Ende!”
Danke für die Hilfe, aber ch wollte nur wissen wie ich diese Daten in einer Tabelle darstellen kann?
Hallo f.ritz!
Oh, da hab ich wohl etwas daneben gelesen. Du hattest den WS so betont, da hab ich gedacht, dass das das Problem sei 😉
Nichtsdestotrotz, dann bleibt die Frage, wo Du die Tabelle erstellen möchtest. Ist das dann ein ASP.NET Programm, eine WinForm-Anwendung, oder vielleicht Konsole?
Ich gehe jetzt davon aus, dass ASP.NET gemeint ist, dann gibt es diese 2 Möglichkeiten:
Beide wirst Du wahrscheinlich per Hand befüllen müssen, außer Du machst Dir einmal die Arbeit eine DataBind-Methode für die Klasse Person zu entwickeln.
Hast Du mit dem Befüllen der Daten Schwierigkeiten?
Ciao
Norman-Timo
A: “Wie ist denn das Wetter bei euch?”
B: “Caps Lock.”
A: “Hä?”
B: “Na ja, Shift ohne Ende!”
@f.ritz
Du kannst natürlich mit DataBinding arbeiten.
grid.DataSource = personenArray;
grid.DataBind();
Danke!
Einen guten Beispiel dazu gibt es hier:
http://www.microsoft.com/germany/msdn/library/net/aspnet/ASPNETDatenbindungFuerEigeneObjekteTeil1.mspx