2009-07-16 7 views
5

Mam istniejącą usługę sieci Web, która zwraca odpowiedzi XML i chciałbym dodać kilka nowych metod, które zwracają JSON. Czy muszę utworzyć oddzielną usługę WWW, która zwraca się w JSON lub czy mogę mieć miks?Powracanie formatu JSON i XML z usługi WWW WCF .NET 3.5 (REST) ​​

Jeśli korzystam z ResponseFormat = WebMessageFormat.JSON Potrzebuję usługi opisanej za pomocą [DataContractFormat], ale nie mogę tego mieć i [XmlSerializerFormat], która jest wymagana dla formatu odpowiedzi typu xml.

Odpowiedz

3

Nie widzę powodu, dla którego nie jest to możliwe. Adnotujesz tę usługę za pomocą atrybutu [ServiceContract] (a nie DataContractFormat). Powinno to wyglądać tak, aby:

Po prostu zmień format odpowiedzi. Kiedy wykonasz polecenie post, dostaniesz json, osobna metoda z formatem xml da ci xml.

1

Czy wiesz, że potrzebujesz XmlSerializerFormat? Jest to potrzebne tylko w przypadku serializacji do pliku XML, który nie jest zgodny z regułami dla modułu Data Serializer.

Jeśli potrzebujesz tego, to potrzebujesz drugiej usługi. To całkiem łatwe. Wystarczy wydedukować odwzorowanie wspólnych operacji w oddzielne metody, a następnie wywołać te metody z obu usług.

0

Wierzę, że odwołujesz się do atrybutu XMLSerilization w paste w postaci xml. Jeśli tak, to nie wpłynie to na twoje dane json. możesz go użyć do serwilizacji zarówno XML & Json. response.Content.ReadAsJsonDataContract()/ReadAsXmlDataContract() gdzie T jest dla typu XMLClientable.

Powiązane problemy