2011-02-08 13 views
7

Sono nuovo di REST e questo suona come dovrebbe essere abbastanza semplice. In un'app .NET, posso creare un riferimento a un servizio WCF e verranno generati i contratti per tutti i tipi disponibili.Generare contratti per appoggiare oggetti

Ora sto cercando di utilizzare un servizio REST in un'app di Windows Phone 7. Mentre posso chiamare e recuperare la risposta corretta, esiste un modo semplice per creare le classi in cui ogni oggetto verrà deserializzato?

Sto usando RestSharp per gestire le mie chiamate. In alcuni esempi che ho visto, gli utenti hanno creato le proprie classi e generato manualmente l'xml. Vorrei evitare questo, se possibile.

molte grazie!

+0

Non posso rispondere alla tua domanda, ma ho scritto su Twitter che l'autore del RestSharp nella speranza di ricevere un migliore orientamento. –

risposta

8

Supponendo che la risposta sia XML, è possibile salvare l'xml in un file, quindi richiamare xsd.exe su di esso per generare uno schema. Chiama xsd.exe sullo schema e genererà un file di classe C# che puoi serializzare e deserializzare da xml. Ecco il documeantion su come funziona XSD.exe:

http://msdn.microsoft.com/en-us/library/x6c1kb0s(v=VS.100).aspx

+0

Ottima idea, grazie per il suggerimento. – earthling

+0

grazie, questo è stato sicuramente il modo più semplice per farlo. – earthling

+0

Che soluzione creativa. Complimenti. +1 – Stimul8d

3

È necessario generare le classi a cui verranno associati i dati di risposta (o utilizzare uno schema di deserializzazione dinamico se si utilizza .NET 4) poiché REST non include un sistema di definizione dello schema come fa SOAP. In RestSharp, there's a T4 helper to make generating the C# classes easier. Ti fa circa l'80% del modo lì. Se hai bisogno di aiuto, pubblicalo allo RestSharp Google Group.

+0

Grazie, sto provando T4 ora. – earthling

+0

Ho avuto una discussione molto interessante l'altro giorno con qualcuno che ha suggerito un modo in cui questo approccio può essere reso auto-descrittivo, utilizzando valori rel specifici molto specifici per identificare al cliente quale tipo preciso sarebbe stato restituito. Il set di rel che un servizio supporta dovrebbe essere chiaramente documentato e supportato dal client, ma almeno si può evitare di accoppiare gli URI per restituire i tipi in questo modo. –

+1

https://github.com/johnsheehan/RestSharp/wiki/T4-Helper non trovato – Kiquenet

Problemi correlati