2009-07-25 6 views
1

OK J'ai joué avec Silverlight et je suis tombé sur quelque chose d'intéressant que j'espère pouvoir expliquer à quelqu'un. La documentation MSDN indique clairement qu'il a une méthode WebRequest.GetResponse(). J'ai créé du code pour obtenir les derniers messages de Twitter. Le code fonctionne bien dans une application de console, mais je reçois une erreur quand il est dans une application Silverlight. Le code est exactement le même, mais dans mon fichier xaml.cs, la méthode semble avoir disparu du framework. Quelqu'un sait pourquoi? Voici deux captures d'écran qui vous montrent ce que je veux dire.WebRequest.GetResponse() ..... Qu'est-il arrivé?

App Console: http://twitpic.com/bl6cf

Silverlight: http://twitpic.com/bl6ev

+0

GetResponse apparaît-il dans le cadre d'intellisense dans la version Silverlight? – shahkalpesh

Répondre

3

Silverlight Documentation ne répertorie pas la méthode GetResponse() parce que, Silverlight vous pouvez appeler seule méthode BeginGetResponse. Cela est dû au fait que vous pouvez bloquer le thread d'interface utilisateur et bloquer le navigateur. BeginGetResponse est une méthode asynchrone.

+0

Je pensais que cela pouvait être dû au fait que le client faisait une requête au Browser mais ne connaissait pas le blocage. +1 – shahkalpesh

+0

D'autre part, comment le compilateur bloque-t-il l'appel de la méthode? Est-ce un assemblage séparé (version réduite) pour Silverlight? – shahkalpesh

+0

Oui, toute la bibliothèque Silverlight est compilée avec un attribut "SILVERLIGHT", vous pouvez le vérifier dans les propriétés de votre projet. Les bibliothèques Silverlight sont réduites, mais je pense qu'elles sont complètement réécrites pour le CLR silverlight modifié. Et oui, le compilateur et votre studio visuel lisent l'attribut "SILVERLIGHT" et chargent l'assemblage en conséquence. –

Questions connexes