Bonjour,
J'ai actuellement une application [Silverlight] qui utilise WebClient afin d'accéder à un fichier XML.
Ce fichier XML doit être charger au démarage de l'application car tout est basé sur sont contenu (mise en forme de l'appli/utilisation des données ...) or étant donnée que je fais appel à DownloadStringAsync l'application n'attend pas le chargement du fichier pour continuer ce qui la plante inévitablement.
Ma question est comment attendre le résultat de DownloadStringAsync afin de continuer ?
Voici mon code:
Merci de votre aide
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28 rivate string urlFile; private XElement sheets; public XmlFile() { UrlFile = "/Charts.xml"; string host = (App.Current.Host.Source.AbsoluteUri).Substring(0, App.Current.Host.Source.AbsoluteUri.Length - App.Current.Host.Source.AbsolutePath.Length); TakeFileFromUri(host + UrlFile); } public void TakeFileFromUri(String URL) { Uri uri = new Uri(URL, UriKind.RelativeOrAbsolute); WebClient client = new WebClient(); client.DownloadStringCompleted += new DownloadStringCompletedEventHandler(DownloadStringCallback2); client.DownloadStringAsync(uri); } private void DownloadStringCallback2(Object sender, DownloadStringCompletedEventArgs e) { string resultBlock; if (e.Error == null) resultBlock = e.Result; else resultBlock = e.Error.ToString() + "erreur"; XmlReader XmlFile = XmlReader.Create(new System.IO.StringReader(resultBlock)); this.Sheets = XElement.Load(XmlFile); }
Partager