Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
Webservice Objekt senden
B3nj
myCSharp.de - Member

Avatar #avatar-2528.gif


Dabei seit:
Beiträge: 242
Herkunft: CH;SG

Themenstarter:

Webservice Objekt senden

beantworten | zitieren | melden

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
private Nachricht | Beiträge des Benutzers
ikaros
myCSharp.de - Member



Dabei seit:
Beiträge: 1.739

beantworten | zitieren | melden

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.
private Nachricht | Beiträge des Benutzers
B3nj
myCSharp.de - Member

Avatar #avatar-2528.gif


Dabei seit:
Beiträge: 242
Herkunft: CH;SG

Themenstarter:

beantworten | zitieren | melden

Zitat von "ikaros"
Der Service muss ein Array of Users definieren.
Dieses Array wird ja definiert, aber halt nicht vollständig wie es scheint.
Zitat von "ikaros"
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
private Nachricht | Beiträge des Benutzers
ikaros
myCSharp.de - Member



Dabei seit:
Beiträge: 1.739

beantworten | zitieren | melden

Dann benötigt dein Array das Attribut der zu serialisierenden Klasse.
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von ikaros am .
private Nachricht | Beiträge des Benutzers