Я создаю приложение для Windows Phone 7, и у меня возникли проблемы с изменением значений в моем xml-файле, который находится внутри изолированного хранилища.
Мой метод здесь:
public void updateItemValueToIsoStorage(string id,
string itemAttribute,
string value)
{
using (var isoStorage = IsolatedStorageFile.GetUserStoreForApplication())
{
using (var stream = isoStorage.OpenFile(
"items.xml", FileMode.Open, FileAccess.ReadWrite))
{
XDocument xml = XDocument.Load(stream, LoadOptions.None);
//According to given parameters,
//set the correct attribute to correct value.
var data = from c in xml.Descendants("item")
where c.Attribute("id").Value == id
select c;
foreach (Object i in data)
{
xml.Root.Attribute(itemAttribute).SetValue(value);
}
}
}
}
И мой xml-файл внутри изолированного хранилища выглядит так:
<?xml version="1.0" encoding="utf-8"?>
<items>
<item id="0" title="Milk" image="a.png" lastbought="6" lastingtime="6" />
<item id="1" title="Cheese" image="b.png" lastbought="2" lastingtime="20" />
<item id="2" title="Bread" image="c.png" lastbought="3" lastingtime="8" />
</items>
Я получаю исключение NullReferenceException из этой строки:
xml.Root.Attribute(itemAttribute).SetValue(value);
Есть идеи, как мне тогда это сделать?
Приветствия.