2009-05-13 5 views
1

Ich habe eine Override-Methode ToString() für meine Klasse in meinem Webservice implementiert und ich eine List<myObject>() in einer Funktion in einem Verbraucher zurückgeben. Wenn ich eine .ToString() mache, gibt es den Objekttyp zurück. Wie gehe ich das in C# an?ToString() in einer Webservice-Klasse

Danke.

+0

nennt Wollen Sie damit sagen Sie .ToString() -Methode, die nicht einen String zurückgibt? Benenne es um. –

+0

Nein, es gibt den Objekttyp zurück, wenn ich es in der .aspx-Seite verwende. – Greens

+0

Ich denke, er sagt, dass die Überschreibung scheint nicht richtig zu funktionieren, wenn er die toString() -Methode für die Basisklasse aufruft. – mquander

Antwort

3

Wenn Objekte in einem Webservice zurück & übergeben werden, wird nur eine XML-Darstellung der öffentlichen Eigenschaften dieses Objekts übergeben. Alle Methoden, außer Kraft gesetzt oder nicht, kommen nicht damit.

Ich würde empfehlen, eine StringRepresentation Eigenschaft machen, die ToString()

public string StringRepresentation 
{ 
    get { return this.ToString(); } 
    set { /* Do Nothing, but there has to be a set */ } 
} 
+0

Darf ich wissen, warum das passiert? – Greens

+0

Grundsätzlich können Sie nur Strings über einen Webservice übergeben. So kompiliert es Ihr Objekt in XML und übergibt das XML anstelle des tatsächlichen Objekts. –

+0

Danke. Sinn macht – Greens