J'ai un problème lors de la tentative d'analyse d'un fichier Xml en objets à l'aide de Linq dans une application Windows Phone 7. La même requête linq fonctionne dans Silverlight.Erreur Linq to Objects dans la collection analysée
Voici le xml:
<?xml version="1.0" encoding="utf-8" ?>
<students>
<student>
<firstName>John</firstName>
<lastName>Doe</lastName>
</student>
<student>
<firstName>Jane</firstName>
<lastName>Doe</lastName>
</student>
</students>
Et tout le code que j'ai est dans les MainPage.xaml.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using Microsoft.Phone.Controls;
using System.Xml.Linq;
namespace WindowsPhoneApplication2
{
public class Student
{
public string FirstName { get; set; }
public string LastName { get; set; }
}
public partial class MainPage : PhoneApplicationPage
{
// Constructor
public MainPage()
{
InitializeComponent();
XDocument doc = XDocument.Load("my1.xml");
var test = from students in doc.Elements("students").Elements("student")
select new Student()
{
FirstName = students.Element("firstName").Value,
LastName = students.Element("lastName").Value
};
foreach (var _student in test)
{ }
}
}
}
L'erreur que je reçois est assez bizarre (ce qui est à l'intérieur foreach lorsque vous regardez le test rapide): System.Collections.Generic.IEnumerator.Current = Impossible d'évaluer l'expression. System.Collections.Generic.IEnumerator.Current = 'System.Collections.Generic.IEnumerable' ne contient pas de définition pour 'System' et aucune méthode d'extension 'System' acceptant un premier argument de type 'System.Collections.Generic.IEnumerable
Pendant ce temps, à l'intérieur du foreach, le var _student a la valeur correcte à chaque itération ?! Cette erreur est-elle un bug? Ou d'où vient-il?
...: \
Edit:
Voici une capture d'écran où je vois l'erreur:
La collection étudiants se révéler correcte mais ayant cette erreur là-bas effraye moi pour quand je vais pousser une application sur le marché des applications.
Si cela aide j'utilise l'émulateur pour déboguer.
EDIT: J'ajoute cette capture d'écran basée sur la réponse de Desnnis.
Il n'y a rien de mal avec le code. Je l'ai juste essayé dans un nouveau projet WP7 et ça a bien fonctionné. L'application se ferme-t-elle ou continue-t-elle sans aucun résultat? – keyboardP
J'ai édité le poste basé sur les réponses pour montrer plus de détails. L'application fonctionne bien, je pense juste que cela va déclencher des problèmes bizarres plus tard. Je voulais juste voir si quelqu'un d'autre le faisait fonctionner et en même temps a la même erreur ?! – asuciu
Ce message est plus susceptible de faire avec le débogueur lui-même que votre application. Si ça marche bien, ça devrait aller. – keyboardP