2010-12-10 66 views
1

J'essaie de charger un fichier XML qui se trouve dans ma solution Windows Phone 7. Je voudrais savoir la bonne façon d'inclure le fichier dans le projet, puis le référencer avec du code. Mon code actuel me donne une erreur deChargement du fichier xml local dans Windows Phone 7 (WP7)

NotSupportedException "Une exception s'est produite lors d'une requête WebClient."

ici est le talon de mon code WebClient

WebClient workbenchAdConfigRequest = new WebClient(); 
workbenchAdConfigRequest.OpenReadCompleted += new OpenReadCompletedEventHandler(workbenchAdConfigRequest_OpenReadCompleted); 
workbenchAdConfigRequest.OpenReadAsync(new Uri("/SampleData/SampleData.xml", UriKind.Relative)); 

et le gestionnaire d'événements est

private void workbenchAdConfigRequest_OpenReadCompleted(object sender, OpenReadCompletedEventArgs e) 
    { 
     try 
     { 
      XElement xml = XElement.Load(e.Result);   
     } 
     catch 
     { 
      //return 
     } 
    } 

sur le fichier /SampleData/SampleData.xml j'ai mis les propriétés à

Action de construction: Référence incorporée Copier dans le répertoire de sortie: Ne pas copier Outil personnalisé: MSBuild: Compiler

Pouvez-vous charger un fichier local à partir du "chemin du fichier" de l'application?

Répondre

0

Voici un projet de travail que j'ai posté sur MSDN faisant juste cela qui a stocké XML dans le XAP et le charge avec XDocument/LINQ, liant le résultat à un ListBox.

binding a Linq datasource to a listbox

2

Voici comment charger un fichier XML:

Définir la "action Construire" à "ressources" dans les propriétés de votre fichier XML, puis dans le code:

using System.Xml.Linq; 

......

XElement appDataXml; 

StreamResourceInfo xml = Application.GetResourceStream(new Uri("/yourprojectname;component/yourxmlfilename.xml", UriKind.Relative)); 
appDataXml = XElement.Load(xml.Stream); 
3

Vous pouvez également définir le "Build action" à "contenu" dans t il propriétés de votre fichier XML, puis dans le code derrière:

using System.Xml.Linq; 

......

XElement appDataXml; 

StreamResourceInfo xml = Application.GetResourceStream(new Uri("yourxmlfilename.xml", UriKind.Relative)); 
appDataXml = XElement.Load(xml.Stream);