Bienvenue à Blogs CodeS-SourceS Identification | Inscription | Aide

Kim's Blog

.NET, java & interop

Actualités

  •  


    Contactez-nous :
[IronPython] : IronPython & Silverlight 2 - Part II

Il y a maintenant quelques semaines, je montrais comment récupérer des données de manière asynchrone (à l'aide de la méthode HttpWebRequest.BeginGetResponse) et mettre à jour l'interface dans Silverlight avec IronPython. Prochainement, je traiterai du databinding dans Silverlight avec IronPython, mais avant cela, je vais vous présenter une autre manière de récupérer des données de manière asynchrone.

Pour ce faire, je vais utiliser la méthode WebClient.DownloadStringAsync.

Pour les personnes les ayant utilisées en c#, la classe WebClient et sa méthode DownloadStringAsync sont facilement utilisables en IronPython (contrairement à mon exemple précédent qui nécessitait l'appel à IronPython.Runtime.Calls.CallTarget(0, 1, ..., n), le wrapper permettant de créer des délégués).
C'est d'ailleurs peu de chose de le dire, car elles s'utilisent exactement de la même façon (syntaxe mise à part).

Une fois votre object WebClient créé, il vous faut créer un délégué DownloadStringCompletedEventHandler. ce délégué identifiera la méthode qui s'occupera de gérer l'événement DownloadStringCompleted.

Sans plus tarder, voici le code qui vous montre la marche à suivre:

 from System.Windows import Application
 from System.Windows.Controls import UserControl 

 class App:
   
     def __init__(self):
         self.scene = Application.Current.LoadRootVisual(UserControl(), "app.xaml")

     def start(self):
         url = ... #url de votre source de données
         self.getDatas(url)

     def getDatas(self, url):
         from System.Net import WebClient, DownloadStringCompletedEventHandler
         wc = WebClient()
         wc.DownloadStringCompleted += DownloadStringCompletedEventHandler(self.downloadDatasCompleted)
         from System import Uri
         endPoint = Uri(url)
         wc.DownloadStringAsync(endPoint)

     def downloadDatasCompleted(self, sender, e):
         if e.Error == None:
             try:
                datas = e.Result
                ...
#traitement
             finally:
                ... #traitement
                            
 App().start()

A bientôt

EDIT : j'ai lu dans un post de Michael Foord (blog qui répertorie les ressources que l'on peut trouver sur le net touchant de près ou de loin à IronPython) qu'il n'était pas nécessaire d'utiliser explicitement un délégué DownloadStringCompletedEventHandler. Il suffit en fait d'écrire wc.DownloadStringCompleted += self.downloadDatasCompleted et IronPython se charge du reste :).

Ce post vous a plu ? Ajoutez le dans vos favoris pour ne pas perdre de temps à le retrouver le jour où vous en aurez besoin :
Posted: mardi 22 juillet 2008 14:50 par Kim U
Classé sous : ,

Commentaires

Pas de commentaires

Les commentaires anonymes sont désactivés

Les 10 derniers blogs postés

- TechDays Paris 2010 : Déploiement de nouvelles technologies – Retour d’expérience par l’informatique de Microsoft par Blog Technique de Romelard Fabrice le il y a 1 heure et 9 minutes

- TechDays Paris 2010 : Plan de migration vers SharePoint 2010 par Blog Technique de Romelard Fabrice le il y a 4 heures et 51 minutes

- TechDays Paris 2010 : La pleinière du second jour par Blog Technique de Romelard Fabrice le il y a 5 heures et 56 minutes

- Visual Studio 2010 and .NET Framework 4 Release Candidate now available par Matthieu MEZIL le il y a 9 heures et 2 minutes

- Création d’une base de donnée sous SQL Azure par Le Blog (Vert) d'Arnaud JUND le il y a 9 heures et 59 minutes

- TechDays Paris 2010 : Les Services d’applications dans SharePoint 2010 par Blog Technique de Romelard Fabrice le il y a 19 heures et 58 minutes

- TechDays Paris 2010 : La GED et SharePoint 2010 par Blog Technique de Romelard Fabrice le il y a 23 heures et 57 minutes

- TechDays Paris 2010 : SharePoint 2010 et Les réseaux sociaux par Blog Technique de Romelard Fabrice le 02-08-2010, 15:40

- TechDays Paris 2010 : SharePoint 2010 – Description et nouveautés par Blog Technique de Romelard Fabrice le 02-08-2010, 14:33

- TechDays Paris 2010 : Pleinière Lundi par Blog Technique de Romelard Fabrice le 02-08-2010, 14:30