获取从Azure Mobile Service返回的数据并写入IsolatedStorage中的XML文件
本文关键字:IsolatedStorage 中的 文件 XML 数据 Azure Mobile Service 返回 获取 | 更新日期: 2023-09-27 18:25:21
我正在这方面进入一个全新的领域。。。
目前,我正在使用Azure移动服务和SQL Azure数据库来存储我的Windows Phone 8应用程序的数据。每次启动应用程序时,它都会通过我设置的一些查询从特定表中提取所有数据。
items = await phoneTable
.Where(PhoneItem => PhoneItem.Publish == true)
.OrderBy(PhoneItem => PhoneItem.FullName)
.ToCollectionAsync();
然而,这并不总是一个很好的做法。我正在尝试实现一种方法,使数据在加载后保存到应用程序的IsolatedStorage
中的XML文件中。
我已经得到了一些代码,我认为应该读取IsolatedStorage
并搜索XML文件,但我不知道如何下载数据,然后将其写入IsolatedStorage
。
public static IEnumerable<Phones> GetSavedData()
{
IEnumerable<Phones> phones = new List<Phones>();
try
{
using (var store = IsolatedStorageFile.GetUserStoreForApplication())
{
string offlineData = Path.Combine("WPTracker", "Offline");
string offlineDataFile = Path.Combine(offlineData, "phones.xml");
IsolatedStorageFileStream dataFile = null;
if (store.FileExists(offlineDataFile))
{
dataFile = store.OpenFile(offlineDataFile, FileMode.Open);
DataContractSerializer ser = new DataContractSerializer(typeof(IEnumerable<Phones>));
phones = (IEnumerable<Phones>)ser.ReadObject(dataFile);
dataFile.Close();
}
else
{
// Call RefreshPhoneItems();
}
}
}
catch (IsolatedStorageException)
{
}
return phones;
}
我正在使用AzureMobileServices SDK
和Newtonsoft.Json
与数据库进行交互。如有任何帮助,我们将不胜感激!
在这种情况下不要使用ToCollectionAsync
-它将返回一个在绑定到某些UI控件时最适合使用的对象。使用ToListAsync
,有点像下面的代码:
items = await phoneTable
.Where(PhoneItem => PhoneItem.Publish == true)
.OrderBy(PhoneItem => PhoneItem.FullName)
.ToListAsync();
using (var store = IsolatedStorageFile.GetUserStoreForApplication())
{
string offlineData = Path.Combine("WPTracker", "Offline");
string offlineDataFile = Path.Combine(offlineData, "phones.xml");
IsolatedStorageFileStream dataFile = null;
dataFile = store.OpenFile(offlineDataFile, FileMode.Create);
DataContractSerializer ser = new DataContractSerializer(typeof(IEnumerable<Phones>));
ser.WriteObject(dataFile, items);
dataFile.Close();
}