3 Stimmen

Sollten WCF-Dienste einfache alte Objekte oder die tatsächliche Klasse, mit der Sie arbeiten, zurückgeben?

Ich verwende einen WCF-Dienst von einem anderen Unternehmen und er gibt ein Objekt des Typs object . Gibt es einen Grund, nicht die eigentliche Klasse zurückzugeben, sondern ein Objekt, das in die richtige Form gebracht werden muss?

Wenn der Webdienst zum Beispiel ein Objekt des Typs OrderStatus warum sollten Sie stattdessen eine einfache alte object ?

Korrigieren Sie mich, wenn ich falsch liege, aber dazu muss ich die Definition der OrderStatus Klasse manuell (per E-Mail oder so) und fügen Sie sie in meine Lösung ein. Außerdem muss ich das Objekt explizit in eine OrderStatus Objekt. Ganz zu schweigen davon, dass das Unternehmen den Dienst so ändern könnte, dass er ein Objekt eines anderen Typs zurückgibt, und mein Code würde nicht mehr funktionieren.

Wenn der Rückgabewert des Dienstes ein Objekt vom Typ OrderStatus würde die Klasse automatisch für mich generiert werden, richtig?

5voto

marc_s Punkte 701497

Nein, definitiv kein "Objekt" zurückgeben! WCF sollte von DataContracts Gebrauch machen und für jeden Aufruf vollständige Implementierungen der Request- und möglicherweise Response-Objekte definieren.

Siehe diese beiden hervorragenden Artikel über die Grundlagen von Datenverträgen:

Ich habe keine Ahnung, warum die Entwickler dieser Dienste "Objekt" als Rückgabetyp gewählt haben - das ergibt für mich nicht viel Sinn!

Marc

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X