Laden...

Eiegenschaften aus NuSoap-Objekt-Array

Erstellt von Sclot vor 14 Jahren Letzter Beitrag vor 14 Jahren 871 Views
S
Sclot Themenstarter:in
324 Beiträge seit 2007
vor 14 Jahren
Eiegenschaften aus NuSoap-Objekt-Array

Hallo 😃

Ich habe mit einen Webservice mit NuSoap (PHP) geschreiben, welcher mir aus einer MySQL-Datenbnak Bestimmte Datensätze ausgibt.

Dafür habe ich für NuSoap ein CompleyType "Kundentabelle" erstelle, welche die Felder als Eigenschaften umsetzt.
Um mehrere Zeilen zu übergeben, habe ich noch ein Array "KundenArray" in Nusoap Definiert.
Wäre dann: KundenArray => KundenTabelle[]

Was ich in meinem C# Client jetzt bekomme, ist ein Array mit Objekten vom Typ KundenTabelle.
Kundentabelle ist aber selbst kein Array, sondern eine Sammlung von Eigenschaften, weil NuSoap das so umsetzt.

Wenn ich jetzt das, was ich übergeben bekomme (das Array), an ein Datagridview als DataSource binde, dann sehe ich schon schön die Zeilen 😃

So...
Jetzt muss ich das ganze Array aber in eine DataTable bekommen, von dort aus mit WriteXML in eine XML datei um sie dann in einem anderen Programm weiter verarbeiten zu können.

Die spalten der Zeilen, gebe ich mir mittlerweile als String aus und baue mir meine DataTable dann so auf:


string tabstru = wdsl.Get_KundenStructure(cred, "e_usr";);

DataTable dt = new DataTable();
foreach (string feld in tabstru.Split(';'))
{
dt.Columns.Add(feld);
Console.WriteLine(UnregKunden[0]);
}

Jetzt muss ich da noch die Inhalte der Felder rein bekommen.


Kundentabelle[] kunden = wdsl.Get_KundenUnregistriert(cred);

^^ gibt mir erstal mein Array in dem Jeweils die Objekte mit Eigenschaften stehen.

^^ sind halt viele, viele eigenschaften.
Jetzt die Frage:
Wie kann ich denn die Eigenschaften alle in einer Schleife durch gehen, so das ich sie im Code ansprechen kann?

Normalerweise kann ich sie z.B. so ansprechen:


string kunden_adresse = kunde[0].adresse;

Aber wie mach ich sowas in einer Schleife?

Steh grad voll aufm Schlauch 😕

S
Sclot Themenstarter:in
324 Beiträge seit 2007
vor 14 Jahren

Ah...
habs schon 😃


foreach (Kundentabelle kundentab in Kunden)
{
    Type type = kundentab.GetType();
    foreach (PropertyInfo info in type.GetProperties())
    {
        object value = info.GetValue(kundentab, null);
        if (value == null)
        {
            Console.WriteLine("NULL");
        }
        else
        {
            Console.WriteLine(value.ToString());
        }
    }
}

^^ Damit funktioniert das schon ganz gut 😃