C# WebService Klassenerzeugung - inject ToString()

  • Hallo mal wieder!

    Ich habe ein WebService (EJB3), das mit ein Array von einem selbstgebastelten Objekt zurückliefert - z.B. Country. Wenn ich jetzt dieses WebService als "Web Reference" im Visual Studio einfüge, dann generiert er mir für die Country ja brav eine Klasse.

    Das Problem ist jetzt allerdings wenn ich diese Country irgendwo im UI verwenden will (sei das TextBox, oder das ganze Array in einer ComboBox, etc.), dann zeigt der mir nur (ServiceName).Country an, und nicht was denn da drin ist. Ok, klar, schließlich weiß der ja nicht wie ToString() aussehen soll.

    Jetzt die Frage: kann ich in diese automatisch generierten Klassen (es ist ja nur die Country) eine Methode "ToString()" injecten, sodass ich mir das ableiten neuer Klassen (es handelt sich dabei nicht nur um die Country sondern um einen Haufen anderer Objekte) ersparen kann? Weil sonst muss ich das vom Service in ein neues Objekt umcasten und dann wieder zurückcasten. Ist umständlich. Viel einfacher wäre, wenn ich ihm einfach sagen könnte "für die Klasse Country sieht deine ToString() Methode wie folgt aus".

    Bin für alle Hinweise dankbar!

  • Hi,
    Das geht imho nicht, da über WS-Methoden übergebene (custom) Daten-Objekte keine Methoden haben können, sondern nur Instanzvariablen.
    Der Client wird also keine toString()-Methode sehen können, sondern nur die public Instanzvariablen - auf die kann man zugreifen.

    Zitat

    You can pass any object you create based on a custom class or
    structure. The only limitation is that only public data members are
    transmitted. If you use a class with defined methods, these methods
    will not be transmitted to the client, and they will not be accessible to
    the client.

    Hoffe ich hab dich richtig verstanden.
    mfg
    AntiBit

    Hätten uns Spiele wie Pac-Man in unserer Jugend beeinflusst, würden wir heute durch dunkle Räume irren, elektronische Musik hören und Pillen fressen.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!