2011-11-20 5 views
3

J'ai un service de restauration WCF qui renvoie des objets JSON que mes applications iPhone et Android consomment bien. C'est ma première tentative de construire quelque chose comme ça et j'ai quitté WP7 pour la dernière fois que mon arrière-plan se trouve avec C# et VS2010. Mais il semble que ça ne va pas être simple comme je l'avais deviné.Consommation d'un service de repos WCF avec WP7

Je suppose que j'ai trois questions:

1, Puis-je consommer des objets JSON dans WP7? Si oui, quelqu'un connaît-il un tutoriel? 2, sinon, puis-je utiliser le service existant et construire de nouveaux contrats pour la consommation dans WP7? Ou,

3, dois-je créer un tout nouveau service?

La première option est la plus souhaitable, mais de toute façon, j'ai besoin de développer pour les trois systèmes d'exploitation, donc quelqu'un connaît le meilleur type de modèle pour mettre tout cela ensemble? Cheers,

Mike.

Répondre

0

Essayez ceci désérialiser un objet JSON:

public static T Deserialize<T>(string strData) where T : class 
{ 
    DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(T)); 
    byte[] byteArray = Encoding.UTF8.GetBytes(strData); 
    MemoryStream memoryStream = new MemoryStream(byteArray); 
    T tRet = serializer.ReadObject(memoryStream) as T; 
    memoryStream.Dispose(); 
    return tRet; 
} 
2
  1. Oui, mais pas avec le modèle de programmation de l'usine de canal/proxy que vous pouvez être utilisé pour avec WCF. Les services REST sont généralement consommés en utilisant des classes plus simples telles que WebClient. Vous pouvez utiliser les bibliothèques JSON (DataContractJsonSerializer est dans le profil WP7) puis désérialiser les données que vous recevez. Même les JSON non typés (les classes System.Json de System.Json.dll sur Silverlight), bien que n'étant pas officiellement dans le profil, ils fonctionnent également sur WP7 (j'ai vu quelques personnes se référant simplement à la bibliothèque SL sur un WP7 projet).

  2. Si vous souhaitez une prise en charge proxy, vous pouvez ajouter un nouveau point de terminaison au service en utilisant BasicHttpBinding, qui est pris en charge dans WP7; si vous n'en avez pas besoin, voir 1).

  3. N ° Voir 1) et 2).

Questions connexes