Laden...

Webservice Objekt senden

Erstellt von B3nj vor 15 Jahren Letzter Beitrag vor 15 Jahren 947 Views
B3nj Themenstarter:in
242 Beiträge seit 2006
vor 15 Jahren
Webservice Objekt senden

Hallo,

Ich arbeite gerade an einem Webservice, welcher eine Funktion "Test" besitzt. String's, Int's und andere primitive Datentypen kann ich ohne Probleme senden. Ich habe jetzt jedoch eine Klasse "User" und möchte einen User-Array in der Webfunktion zurückgeben.

Wenn ich den Code debugge dann wird ein Array zurückgegeben, welcher die Länge "1" hat. Im xml-File, das zurückgegeben wird steht jedoch das:

<?xml version="1.0" encoding="utf-8"?>
<ArrayOfUser xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://tempuri.org/">
  <User />
</ArrayOfUser>

Wieso das? Fehler usw. gibt es keine.

mfG b3nj

I
1.739 Beiträge seit 2005
vor 15 Jahren

Xml-Serialisierung ist flach per default. Die Rückgabe eines Arrays(user) muss ebenfalls Bestandteil des Vertrags(WSDL) sein.
Daraus ergeben sich folgendes:
Der Service muss ein Array of Users definieren.
Das Array benötigt das Attribut der Klasse zum Serialisieren.

B3nj Themenstarter:in
242 Beiträge seit 2006
vor 15 Jahren

Der Service muss ein Array of Users definieren.

Dieses Array wird ja definiert, aber halt nicht vollständig wie es scheint.

Das Array benötigt das Attribut der Klasse zum Serialisieren.

Das Array hat ja eigentlich schon in seinem Namen bzw. Tagname den Klassennamen des Typs (ArrayOfUser) oder verstehe ich da etwas falsch?

Die Klasse User sollte eigentlich auch serialisierbar sein:

    [Serializable()]
    public class User

Sorry, ich bin gerade ein bisschen verwirrt. Ein Link auf ein brauchbares Dokument zu diesem Thema wäre gut, habe in google nicht viel zu der Übertragung von Objekten gefunden.

mfG b3nj

I
1.739 Beiträge seit 2005
vor 15 Jahren

Dann benötigt dein Array das Attribut der zu serialisierenden Klasse.