У меня проблема при попытке проанализировать Xml для объектов с помощью Linq в приложении Windows Phone 7. Тот же самый запрос linq работает в silverlight.
Вот 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>
И весь код, который у меня есть, находится в 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)
{ }
}
}
}
Ошибка, которую я получаю, довольно странная (это внутри foreach, когда вы быстро смотрите тест):
System.Collections.Generic.IEnumerator.Current = Не удалось оценить выражение.
System.Collections.Generic.IEnumerator.Current = 'System.Collections.Generic.IEnumerable' не содержит определения для 'System' и не имеет метода расширения 'System', принимающего первый аргумент типа 'System.Collections.Generic.IEnumerable
В то же время внутри foreach _student var имеет правильное значение на каждой итерации ?! Эта ошибка - ошибка? Или откуда он взялся?
...: \
Edit:
Вот скриншот, где я вижу ошибку:
Коллекция студентов оказалась правильной, но наличие этой ошибки пугает меня, когда я отправлю приложение в App Market.
Если это поможет, я использую эмулятор для отладки.
EDIT:
Я добавляю этот скриншот, основываясь на ответе Десниса.