WCF und Anonyme Typen
Möchte ich zu dem zurückkehren eines anonymen Typs über WCF. Ist das möglich?
- Wie ist der client wissen, was das geben wird?
- Dies ist eine falsche Sache zu tun, auch wenn Sie nicht typisierte Vertrag
- Hier sind ein paar Ideen, warum würde jemand brauchen. 1. Der Kunde konnte sein Umgang mit Javascript JSON-Antworten, die keine Ahnung von der Art sowieso. 2. Man könnte in der Lage sein wollen, um "generische" Anforderungen an WCF, ohne zu warten zahlreiche Antwort-Typen. Es ist traurig, dass nur (positive) Antwort (@dave-ward) scheint bisher zu fehlen Konfiguration details, die wirklich machen dies möglich.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie nicht verwenden, anonyme Typen, aber vielleicht sprichst du über WCF und nicht typisierte Nachrichten?
Gibt es eine option in WCF nur definieren einen parameter vom Typ
Message
(und möglicherweise einen Rückgabewert vom gleichen Typ). Dies ist nur der raw-Nachricht geht das WCF (kommt zurück von ihm).Kann ich nicht finden viel Informationen da draußen - es gibt eine Dokumentation auf der MSDN-Website, aber die beste, die ich bisher gesehen habe, ist Kurt Claeys' blog-post WCF : nicht Typisierte Nachrichten auf WCF-Operationen.
Ich würde nicht empfehlen, mit diesem Ansatz - es ist viel mehr grunt Arbeit zu behandeln, wird der Inhalt der Nachricht selbst direkt und das ist, was WCF versucht, verschone uns aus - aber wenn Sie absolut positiv haben zu zwicken jedes bit der Nachricht - das scheint der Weg zu gehen.
Marc
Können Sie nicht wieder ein anonymer Typ aus alle - Methode, können Sie? Also warum sollten Sie in der Lage sein, es zurückzugeben, von WCF?
Sieht aus wie Sie nicht mit der XML-Serialisierung, weil einige Beschwerde über einen parameterlosen Konstruktor, aber es funktioniert für die json-Serialisierung, wenn Sie dienen, um ein ajax-client, wie durch Dave Ward.
Werfen Sie einen Blick auf
[DataMember(EmitDefaultValue=false)]
Nein, es ist nicht. Sie müssen definieren, Ihre Arten vor der Zeit.
Können Sie definitiv Rückgabe anonymer Typen. Dies funktioniert, zum Beispiel:
Rufen Sie diese Methode als eine ASMX-ScriptService ist WebMethod, erhalten Sie diese JSON aus:
Können Sie mit einem return-Typ IEnumerable zurück, eine Sammlung von anonymen Typen auch.
Können Sie das ExpandoObject. Wenn Sie eine Eigenschaft definieren, in ein DTO als ExpandoObject der client generiert wird, als Wörterbuch:
Vertrag DTO
Client
Service